我在數組上有一個非常簡單的問題。我一直在看一些教程,並不明白爲什麼下面的代碼將頻率輸出作爲1 **的隨機組合。它從來沒有給出像5,67,541等數字,它總是給出像150,175,183等。我希望我明確自己。非常感謝!這個生成隨機數的程序爲什麼會持續產生數百個數字?
代碼:
Random rand = new Random();
int freq[] = new int[7];
for(int roll=1; roll<=1000; roll++){
++freq[1+rand.nextInt(6)];
}
System.out.println("Face\tFrequency");
for(int face=1; face<freq.length; face++){
System.out.println(face + "\t" + freq[face]);
}
樣本輸出:
Face Frequency
1 176
2 171
3 157
4 159
5 164
6 173
這不是一個數組問題,因爲它是一個概率問題。它**可以給出小數字,這是不太可能的。 – 2015-01-20 23:35:54
它與整數在0和5之間的隨機分佈(1-6)有關。從統計上看,如果隨機數發生器是真正隨機數的話,他們都可能發生同樣的情況,這就是爲什麼你看到的數字看起來像是「奇怪」的。例如看到一個6的'67'就表明6只在1000箇中滾動了67次,這不太可能。例如加權死亡可能產生看起來不正常分佈的數字,因爲滾動給定數字的概率與其他數字不同。 – 2015-01-20 23:36:21