我需要用Java编写一个程序,使用以下公式生成[0,1]范围内的随机数:
X i =(aX i-1 + b)mod m
假设任何固定的int值a,b&m和X 0 = 0.5(即i = 0)
我该怎么做呢?
我试过这样做但显然是错的:
int a = 25173, b = 13849, m = 32768; double X_[i]; for (int i = 1; i<100; i++) X_[i] = (a*(X_[i]-1) + b) % m; double X_[0] = 0.5; double double = new double(); System.out.println [new double];
Charlie Mart.. 8
以下是一些提示:
int a, d, m, x;
乘法是*
和mod是%
.
好的,我会再给你一点提示.你只需要一个X,你不需要所有这些数组; 因为你只使用整数,所以你不需要任何花车或双箭头.
重要的代码行将是
x = (a * x + b) % m ;
你不需要另外x
那个,因为x
右边=
是OLD x
,或x i-1 ; 左边的那个将是你的"新" x
,或x i.
现在,从那里开始,你需要编写Java包装器,让你创建一个方法,这意味着编写一个类.
以下是一些提示:
int a, d, m, x;
乘法是*
和mod是%
.
好的,我会再给你一点提示.你只需要一个X,你不需要所有这些数组; 因为你只使用整数,所以你不需要任何花车或双箭头.
重要的代码行将是
x = (a * x + b) % m ;
你不需要另外x
那个,因为x
右边=
是OLD x
,或x i-1 ; 左边的那个将是你的"新" x
,或x i.
现在,从那里开始,你需要编写Java包装器,让你创建一个方法,这意味着编写一个类.