当我运行以下代码时,无论我用于for循环的范围是什么,代码总是打印出真实十次.
public static void main(String[] args)
{
Random bool = new Random();
for (int i = 0; i < 10; i++) {
bool.setSeed(i);
System.out.println(bool.nextBoolean());
}
}
但是,如果我对代码稍作修改并让随机生成器在打印之前运行nextBoolean()函数一次,那么当我更改for循环的范围时,我会在输出中得到正常的true和false分布:
public static void main(String[] args)
{
Random bool = new Random();
for (int i = 0; i < 10; i++) {
bool.setSeed(i);
bool.nextBoolean(); //Only change
System.out.println(bool.nextBoolean());
}
}
在我看来,nextBoolean()函数在第一次执行时总是返回true,这种行为是否有任何原因?