【发布时间】:2017-03-18 04:15:35
【问题描述】:
只是想生成 8 个随机数,但我只返回了 3 个数字。
代码:
import java.util.Random;
public class One{
public static void main(String[] args){
Random rand = new Random();
int[] deciJunc = new int[8];
for(int i=0; i<8; i++){
deciJunc[i] = 1+rand.nextInt(8);
System.out.println(deciJunc[i]);
}
}
}
输出:
3
5
7
3
3
5
7
3
输出:
3
3
3
5
7
7
7
3
现在,我已经运行了这个程序 10 次,它只给了我这 3 个数字 (3,5,7),我不明白出了什么问题。 如果我改变:
deciJunc[i] = 1+rand.nextInt(8);
到
deciJunc[i] = 4+rand.nextInt(8);
效果很好,我得到了一个很好的混合输出,例如:
8
9
10
4
4
9
9
6
第一个只返回 3 个不同的数字有什么问题?
【问题讨论】:
-
在 8 个可能性中获得 3 个不同的数字有什么问题?这仍然符合随机标准
-
我运行它时得到合理的结果。
-
也无法重现您的问题:ideone.com/kzcWmG
-
忍不住:xkcd
-
今日趣事:发生这种情况的概率为 8e-35。恭喜,您连续中了 5 次彩票:D。 (以防你实际运行了 10 次)