首页  >  文章  >  Java  >  尽管设置了种子,为什么我的 Java 随机数生成器始终返回相同的数字?

尽管设置了种子,为什么我的 Java 随机数生成器始终返回相同的数字?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-07 07:11:02612浏览

Why Does My Java Random Number Generator Always Return the Same Number Despite Setting a Seed?

尽管有种子,Java 随机数生成器始终返回相同的数字

在提供的 Java 代码中,尽管设置了种子,但随机数生成器始终返回相同的数字产生相同的数字。为每个方法调用创建新的 Random 对象时会出现问题。这确保每次都会生成新的种子,从而导致随机数的重复。

要解决此问题,必须在整个类中共享单个 Random 实例。通过合并此更改,我们保证种子仅设置一次,从而产生一系列真正的随机数。

public class Numbers {
    // Shared Random instance
    private Random randnum = new Random();

    public int random(int i) {
        randnum.setSeed(123456789);
        return randnum.nextInt(i);
    }
}

通过此修改,对 random 方法的后续调用将返回不同的数字,遵循拥有固定种子的限制。

以上是尽管设置了种子,为什么我的 Java 随机数生成器始终返回相同的数字?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn