У меня действительно простой вопрос о массивах. Я смотрел некоторые уроки и не мог понять, почему приведенный ниже код дает частотные выходы как случайные комбинации из 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
Это вопрос не столько массива, сколько вопрос о вероятности. Он ** мог ** дать небольшие цифры, это просто очень маловероятно. –
Это связано со случайным распределением целых чисел от 0 до 5 (1-6). По статистике, все они одинаково вероятны, если рандомизатор действительно случайный, поэтому вы видите цифры, которые выглядят так, будто они могут быть «странными». Например, если посмотреть на «67» для 6, это означало бы, что 6 было свернуто только 67 раз из 1000, что маловероятно. Например, взвешенная матрица может приводить к номерам, которые не выглядят нормально распределенными, так как вероятность прокатки заданного числа не совпадает с другими. –