Java 是否设置随机对象';将种子设定为随机值是否使生成器更随机?

Java 是否设置随机对象';将种子设定为随机值是否使生成器更随机?,java,random,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());

我有一个模拟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");
    }
}
public void flipcointimes(){
Random randomNumberGenerator=新的Random();
//生成10个随机数
对于(int i=0;i<10;i++){
randomNumberGenerator.setSeed(randomNumberGenerator.nextLong());
System.out.println(randomNumberGenerator.nextInt(2)=0?“Heads”:“Tails”);
}
}

将种子设置为随机长是否会使此方法变得更随机?也就是说,如果我删除
setSeed()
行,则该值将超过50/50?

,这样的设置不会使种子变得“更随机”。将使用随机种子

Random类使用a生成一系列位。随机类的状态包含在称为种子的东西中。当要求全班学生提供一个随机数时


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

当然,种子必须在最初设置,但每次更改种子都必须有效果?我读到过,某些种子会产生类似的序列,所以随机改变种子会使其整体上更随机。至少我是这么想的。@根据上面链接的文档,msw是不正确的。@Wakahiu Njenga感谢您的编辑,但它自己的答案似乎更合适。@vidstige:您是对的。不知何故,我认为问题是关于Python的。对不起,我的错误和矛盾。不管种子是什么,它都是“50/50”。种子只影响你得到的特定“50/50”序列。@immibis我不确定。我问自己的问题是:“如何将种子更改为新的随机值而不影响生成器的随机性?”@immibis是的,但给定种子的顺序不一样吗?因此,改变种子将改变序列。从生成器中产生的任何东西实际上都不是随机的。您可以尝试从高分辨率时间或用户的鼠标移动或任何东西中获取一些实际的随机性,并使用这些随机性为生成器种子,或者使用SecureRandom进行加密保证。有效地将随机种子植入自身只会使生成器更加复杂,但不会降低确定性。@Ogen是的。但是所有的序列都是“50/50相等”,这就是你所问的。