【发布时间】:2016-04-29 11:45:39
【问题描述】:
我想要一个随机数生成器来模拟抛硬币,这就是我所做的
public class CoinToss
{
public static void main(String args[])
{
int num=(int)(1000*Math.random());
if(num<500)
System.out.println("H");
else
System.out.println("T");
}
}
结果令人沮丧,因为我在 20 次运行中得到了 16 个正面和 4 个反面。 这并不似乎是随机的。它可能,但如果程序正确,我想要一个普遍的意见?我在数学上遗漏了什么吗?
【问题讨论】:
-
尝试多运行几次。你可能会得到更好的结果。
-
20 个样本在数学上毫无意义,托盘再放一个更大的样本(至少 10k)
-
是的,@Preuk 是对的。我刚刚用 max_int 循环了你的例子,结果如下:H:1073754033,T:1073729614
-
您最初的问题是您认为“完全随机”这个词是有意义的。 :-)
标签: java random coin-flipping