Какой хороший процент случайных чисел? - PullRequest
4 голосов
/ 11 октября 2010

Я в основном новичок в кодировании для случайных результатов, но немного прочитал и протестировал javascript-версию алгоритма Фишера-Йейтса (как видно из Википедии) с упорядоченным списком.

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

Так что мне интересно, что можно считать хорошим результатом. Вид общего вопроса. Если бы я перетасовал колоду карт, какой был бы наименьший приемлемый объем перетасовки? Прямо сейчас у меня есть мой код для повторения алгоритма, если он получился менее чем на 25 процентов перемешанным.

Что ты думаешь?

Ответы [ 3 ]

9 голосов
/ 11 октября 2010

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

6 голосов
/ 11 октября 2010

Если ваш алгоритм перемешивания правильно реализован и дает действительно случайный случай перемешивания (по модулю случайности PRNG или ее отсутствия), я бы вообще не переставлял.В частности, тот факт, что вы не принимаете случайные конфигурации, которые на 25 +% похожи на вашу исходную конфигурацию, говорит злоумышленнику, что он может ожидать, что не увидит ни одну из этих конфигураций после завершения вашего перетасовки.

0 голосов
/ 12 октября 2010

Спасибо за отзыв.Все ваши ответы были релевантными.

Я добавляю этот ответ, поскольку мое представление о перетасовке перешло от случайного к неслучайному, и теперь я использую гибрид этих двух.Идеально в случайном порядке Я могу создать несколько списков в разных порядках (которые модулируют количество элементов).Однако, когда количество элементов нечетное, последнее число не перемешивается.Поэтому я решил рандомизировать его положение в перетасованном списке.

В процессе выяснения этого я создал генератор таблиц, который отображает все возможные списки с учетом количества элементов.Это довольно интересно.Например, число 52 создает 52 столбца, а число 51 - только 8 столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...