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

Я записал программу в 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 не была опция.)

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

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

13
задан David 14 April 2010 в 21:43
поделиться

4 ответа

Чтобы проверить, согласуется ли это конкретное распределение с ожидаемым распределением чисел, выпавших с "правильным" прыжком, вам необходимо выполнить Ци Пирсона -квадратный тест .

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

Чтобы проверить, является ли ваш алгоритм «честным» в целом, используйте тесты Дихарда , как уже упоминалось другими.

5
ответ дан 2 December 2019 в 01:20
поделиться

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

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

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

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

0
ответ дан 2 December 2019 в 01:20
поделиться

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

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

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

4
ответ дан 2 December 2019 в 01:20
поделиться

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

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

1
ответ дан 2 December 2019 в 01:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: