设置随机对象'种子到随机值会使发生器更随机?

时间:2014-09-21 04:09:10

标签: java random

我有这个模拟10个硬币投掷的代码:

public void FlipCoinTenTimes() {
    Random randomNumberGenerator = new Random();

    // Generate 10 random numbers
    for (int i = 0; i < 10; i++) {
        randomNumberGenerator.setSeed(randomNumberGenerator.nextLong());
        System.out.println(randomNumberGenerator.nextInt(2) == 0 ? "Heads" : "Tails");
    }
}

将种子设置为随机长会使此方法更随机吗?即,比我删除setSeed()行更多50/50?

1 个答案:

答案 0 :(得分:3)

,设置这样的种子不会让它更随机&#39;。 default constructor将使用随机种子。

Random类使用linear congruential generator生成pseudo random系列位。随机类的状态包含在称为种子的东西中。当要求班级提供随机数the seed is updated

不应影响手动重置随机数分布的分布。如果您需要更难预测的更好的分发,可以使用SecureRandom