Java中的Math.Random如何创建随机数
我想知道如何通过设置启动条件(如时间),为反向工程mc种子创建自己的随机数生成器。提前谢谢Java中的Math.Random如何创建随机数,java,random,minecraft,Java,Random,Minecraft,我想知道如何通过设置启动条件(如时间),为反向工程mc种子创建自己的随机数生成器。提前谢谢 Math.random调用random类型的对象 调用nextDouble nextDouble的实现方式如下: 正如你所看到的,这是一个 线性同余伪随机数发生器 “Java中的Math.Random如何创建随机数”-? public double nextDouble() { return (((long)(next(26)) << 27) + next(27)) * DOUB
nextDouble
nextDouble
的实现方式如下:
public double nextDouble() {
return (((long)(next(26)) << 27) + next(27)) * DOUBLE_UNIT;
}
protected int next(int bits) {
long oldseed, nextseed;
AtomicLong seed = this.seed;
do {
oldseed = seed.get();
nextseed = (oldseed * multiplier + addend) & mask;
} while (!seed.compareAndSet(oldseed, nextseed));
return (int)(nextseed >>> (48 - bits));
}