我正在尝试为示例问题集实施 LCG,但它对我不起作用,我似乎无法弄清楚为什么?
方程很简单:Xn+1 =(aXn + c) mod m
从上面的参考:例如X0 = a = c = 7, m = 10时得到的序列是7, 6, 9, 0, 7, 6, 9, 0, ...
在java中实现这个,例如 -
public static void lcg(){
int a = 7;
int c = 7;
int m = 10;
int x0 = 7;
int N = 10;
for (int x = x0; x < x0+N; x++){
int result = (a*x + c) % m;
System.out.println(result);
}
我得到输出: 6 3 0 7 4 1 8 5 2 9
而不是预期的 7,6,9,0,...
我在纸上得到同样的结果。谁能弄清楚出了什么问题?
同样, a=10, c=7, m=11, x0 = 3 应该给出重复模式 4,3,4,3 但我得到 4 3 2 1 0 10 9 8 7 6