我需要用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];
Run Code Online (Sandbox Code Playgroud)
以下是一些提示:
int a, d, m, x;
Run Code Online (Sandbox Code Playgroud)
乘法是*和mod是%.
好的,我会再给你一点提示.你只需要一个X,你不需要所有这些数组; 因为你只使用整数,所以你不需要任何花车或双箭头.
重要的代码行将是
x = (a * x + b) % m ;
Run Code Online (Sandbox Code Playgroud)
你不需要另外x那个,因为x右边=是OLD x,或x i-1 ; 左边的那个将是你的"新" x,或x i.
现在,从那里开始,你需要编写Java包装器,让你创建一个方法,这意味着编写一个类.
| 归档时间: |
|
| 查看次数: |
9801 次 |
| 最近记录: |