我有这个模拟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?
答案 0 :(得分:3)
否,设置这样的种子不会让它更随机&#39;。 default constructor将使用随机种子。
Random类使用linear congruential generator生成pseudo random系列位。随机类的状态包含在称为种子的东西中。当要求班级提供随机数the seed is updated。
不应影响手动重置随机数分布的分布。如果您需要更难预测的更好的分发,可以使用SecureRandom
。