Как узнать, достаточно ли это случайное число?

Я написал программу в java, которая копирует штамп и записывает общее количество раз, когда качается каждое значение 1-6. Я прокатился 6 миллионов раз. Здесь распределение:

#of 0's: 0
#of 1's: 1000068
#of 2's: 999375
#of 3's: 999525
#of 4's: 1001486
#of 5's: 1000059
#of 6's: 999487

(0 не был вариантом.)

Является ли это распределение согласованным со случайными бросками в кости? Какие объективные статистические тесты могут подтвердить, что броски в кости действительно достаточно случайны?

EDIT: были подняты вопросы по поводу приложения: игра, в которой я хочу быть настолько справедливым, насколько это возможно.

Ответы

Ответ 1

Чтобы проверить, соответствует ли это конкретное распределение ожидаемому распределению чисел, свернутых с "справедливым" погружением, вам необходимо выполнить Pearson Chi-square тест.

Обратите внимание, что это все равно не докажет, что ваш алгоритм "справедлив", только то, что эти конкретные результаты выглядят "справедливыми".

Чтобы проверить, является ли ваш алгоритм "справедливым" в целом, используйте тесты Diehard, как упомянули другие.

Ответ 2

Если ваш генератор случайных чисел проходит тесты Diehard, это лучшее, что вы можете сделать.

Даже физическая смерть не будет идеальной с 1/6 на лицо.

Увеличьте испытания на порядок, затем сделайте это снова. Если вы получите 1/6 за каждое испытание, все будет в порядке.

Ответ 3

Только этого теста недостаточно для определения случайности. Не то, чтобы это было совершенно бесполезно, но "случайный" кубический ролик, который выводит 1,2,3,4,5,6, и повторы были бы совершенно случайными в соответствии с этим тестом.

Еще один предложенный тест: выберите число, x и каждый раз, когда он свернут, запишите статистику того, какой номер будет дальше; вы должны увидеть равномерное распределение снова. Повторите все шесть значений x. Если он пройдет этот тест, он, вероятно, будет достаточно случайным для использования в роли кубика кости.

Ответ 4

Вероятность того, что 6'000'000 бросков кубиков закончится точно в 1 000 000 результатов каждого, близка к 0. Пока сумма, если результаты правильные, и что дисперсия (ошибка) разница с ожидаемым результатом идет к 0 (относительно), когда число испытаний увеличивается, тогда ваша случайная функция не является неправильной.

Вы можете либо доказать это математически, либо путем тестирования случайной функции с большими и большими пробными последовательностями, чтобы увидеть, что она сходится.

Для повторного количества тестов сумма для каждого результата должна аппроксимировать распределение Гаусса. Например. каждый результат 1-6 должен находиться в пределах нормального распределения, сосредоточенного около 1 000 000 с дисперсией, которая обратно пропорциональна количеству рулонов кости.

Другие тесты, тесты Дихарда, показывают, что фактическая последовательность бросков кости является случайной по себе, а не то, что результат 6000 000 рулонов, например, составляет 100 000 последовательных 1, затем 100 000 2 и так и, наконец, некоторые случайные последовательности.