我正在实现我自己的 PRNG,我应该使用线性同余生成器。我的一种方法应该生成下一个伪随机数,如下所示。较早从用户那里检索到种子。
MyRandom(long seed) {
Random random = new Random();
random.setSeed(seed);
}
这是应该生成下一个伪随机数的方法。这是我试图写的,但我真的不知道如何使它适用于下一个即将到来的数字。a 和 b 是选定的常数,m 是选定的素数。
int next(int bits) {
long seed;
seed = (a * seed) + (b % m);
return (int) (seed >>> (48 - bits));
}