Java随机数的异常行为

时间:2014-07-16 13:46:15

标签: java

我在互联网上遇到了一段代码片段。在这里

  public class Test {

    public static void main(String[] args) {
    Random random = new Random(441287210);  

    for(int j=0;j<10;j++) { 

           System.out.print(random.nextInt(10)+" ");  

    } 
}

}

每次我运行它都会打印1 1 1 1 1 1 1 1 1 1。这可能是有充分理由的。

为什么会出现这种行为。

这是来源 - &gt; http://www.javacodegeeks.com/2011/10/weird-funny-java.html

2 个答案:

答案 0 :(得分:8)

您正在将伪随机数字生成器初始化为特定状态,这意味着它将始终在运行中生成相同的输出。看起来有人刚发现种子恰好会产生一系列有趣的结果。

答案 1 :(得分:1)

每个Random种子生成相同的数字序列。 441287210种子生成此序列,就像任何其他生成的序列一样...

来自documentation

  

如果使用相同的种子创建了两个Random实例,那么   为每个方法调用相同的方法调用,它们将生成和   返回相同的数字序列