Java中的Math.Random如何创建随机数

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

我想知道如何通过设置启动条件(如时间),为反向工程mc种子创建自己的随机数生成器。提前谢谢

  • Math.random调用random类型的对象

  • 调用
    nextDouble

  • nextDouble
    的实现方式如下:

  • 正如你所看到的,这是一个

    线性同余伪随机数发生器

    “Java中的Math.Random如何创建随机数”-?
    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));
    }