Во-первых, этот вопрос вырван из этого вопроса. Я сделал это, потому что я думаю, что эта часть больше, чем часть более длинного вопроса. Если это оскорбляет меня, прошу прощения.
Предположим, у вас есть алгоритм, который генерирует случайность. Теперь, как вы это тестируете?
Или, чтобы быть более прямым - предположим, у вас есть алгоритм, который перетасовывает колоду карт, как вы проверяете, что это совершенно случайный алгоритм?
Чтобы добавить некоторую теорию к проблеме -
Колода карт может быть перетасована в 52! (52 факториала) по-разному. Возьмите колоду карт, перемешайте ее вручную и запишите порядок всех карт. Какова вероятность того, что вы бы получили именно эту случайность? Ответ: 1/52!.
Какова вероятность того, что после перетасовки вы получите A, K, Q, J ... каждой масти в последовательности? Ответ 1/52!
Итак, просто перетасовав один раз и посмотрев на результат, вы не получите абсолютно никакой информации о случайности ваших алгоритмов перетасовки. Дважды и у тебя будет больше информации, еще три больше ...
Как бы вы проверили алгоритм случайности в чёрном ящике?