伪随机数发生器的线性同余方法

时间:2014-04-10 12:50:36

标签: java

public class Random {
    private static int A=25173;
    private static int C=13849;
    private static int M=65536; 
    public static int next(){
        int z = 23311;
        z=(A*z+C)%M;
    return z;
   }
}

如何引用前一个数字(z_i-1),以便在调用方法时可以继续生成新的随机数?

1 个答案:

答案 0 :(得分:1)

如果您希望自己的班级为private static int(仅为方法的包装,而不是最佳设计!),则为static;如果您是private int,则为Random -class应该被实例化。在next() - 函数中,您只需写入新字段:

public class Random {
    ...
    private static int last = 23311;
    ...
    public static int next(){
        last=(A*last+C)%M;
        return last;
    }
}