随机数发生器

3 java random

我需要用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)

Cha*_*tin 8

以下是一些提示:

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包装器,让你创建一个方法,这意味着编写一个.