【发布时间】:2016-03-23 20:16:19
【问题描述】:
我正在尝试制作一个统计模拟器,首先,我想绘制一个从 0 到 2 的数字,其中每个数字都有相同的概率(即 0 = 33.33%、1 = 33.33% 和2 = 33.33%)但是当我运行我的代码(一百万次绘制)时,我总是得到 0 被绘制的 33%,1 被绘制 66%,c 被绘制 1%。
对于一百万次抽奖,我预计(有一些差异)每个数字都接近 33%。
这是我得到的代码:
Random number = new Random();
int sorteio;
int a=0;
int b=0;
int c=0;
int n;
for (n=0;n<1000000;n++){
sorteio = number.nextInt(3);
switch (sorteio){
case 0:
a++;
case 1:
b++;
case 2:
c++;
}
}
System.out.println("a: " + a + " b: " + b + " c: " + c);
【问题讨论】:
-
您的
switch声明需要breaks。 -
你的 switch 中没有 break 语句。 docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html
-
我认为你的意思是 c 是 100% 绘制的,而不是 1%
标签: java