java.util.Random中的种子

时间:2017-04-13 10:08:30

标签: java

如果我在Random中设置种子,为什么总是在下面的代码中得到相同的随机数:

private static void createArray(int[] x) {

    for(int i =0; i<x.length; i++){
        Random random = new Random(500l);

        x[i] = random.nextInt(100000); //53695
    }

}

我为每次跑步和整个循环获得53695。

1 个答案:

答案 0 :(得分:2)

因为当你在伪随机数发生器中使用相同的种子时会发生这种情况。它不是随机的,只是看起来“随机”,但这完全归功于确定性的数学公式。

如果您需要更好的随机性,请使用SecureRandom

以下是一些提供“有趣”“随机”数字的种子示例: http://insights.dice.com/2014/01/24/generating-random-numbers-javas-random-class/