Я написал программу для имитации сверху вниз перетасовать карты.
Каждая карта пронумерована, начиная с масти CLUBS, DIAMONDS, HEARTS, SPADES
и ранга от двух до десяти, затем Джек, Королева, Король и Туз. Таким образом, у двух клубов число 1, у трех клубов 2 ... Туз треф составляет 13 ... Туз пик составляет 52.
Один из методов определения того, насколько перетасованы карты, - сравнить ее с картой без перетасовки и посмотреть, коррелирован ли порядок карт.
То есть у меня могут быть эти карточки с несмешанной карточкой для сравнения:
Unshuffled Shuffled Unshuffled number Shuffled number
Two of Clubs Three of Clubs 1 2
Three of Clubs Two of Clubs 2 1
Four of Clubs Five of Clubs 3 4
Five of Clubs Four of Clubs 4 3
Корреляция по методу Пирсона будет: 0,6
С большим набором карт (все 52) вы можете увидеть появление шаблонов. Моя гипотеза заключается в том, что после более перетасовки вы получите меньше корреляции.
Однако есть много способов измерить корреляцию.
Я попробовал свои силы в корреляции Пирсона, но я не уверен, что это правильная корреляция для использования в этой ситуации.
Является ли это подходящей мерой корреляции? Есть ли более подходящая мера?
Бонусные баллы Иногда я вижу такие данные в своих результатах:
Очевидно, что есть некоторая корреляция, но я не знаю, как вы измеряете отдельные «линии тренда»?
источник
Ответы:
Вы можете измерить относительный уровень корреляции (или, точнее, возрастающий уровень случайности), используя энтропию Шеннона разности номиналов между всеми парами смежных карт.
Вот как это вычислить, для случайно перемешанной колоды из 52 карт. Вы начинаете с циклического прохождения всей колоды и построения своего рода гистограммы. Для каждой позиции карты рассчитайте разницу в номинале . Чтобы сделать это более конкретно, допустим, что карта в -й позиции - это король пиков, а карта в й позиции - это четверка треф. Тогда мы имеем и и . Когда вы добираетесь до , это особый случай; Вы снова возвращаетесь к началу колоды и беретея = 1 , 2 , . , , , 52 Δ Fя= Fя + 1- Fя ( я + 1 ) я Fя + 1= 51 Fя= 3 Δ Fя= 51 - 3 = 48 я = 52 Δ F52= F1- F52 , Если в результате вы получите отрицательные числа для любого из , добавьте 52, чтобы вернуть разницу номиналов в диапазон 1-52.Δ F
В итоге вы получите набор различий по номиналу для 52 пар смежных карт, каждая из которых попадает в допустимый диапазон от 1 до 52; посчитайте их относительную частоту, используя гистограмму (то есть одномерный массив) с 52 элементами. Гистограмма записывает своего рода «наблюдаемое распределение вероятностей» для колоды; Вы можете нормализовать это распределение, разделив счетчики в каждом бине на 52. Таким образом, вы получите последовательность переменных где каждая из них может принимать дискретное значение диапазон возможных значений: {0, 1/52, 2/52, 3/52 и т. д.} в зависимости от того, сколько парных разностей номинальной стоимости случайно попало в конкретную ячейку гистограммы.п1, р2, . , , п52
Получив гистограмму, вы можете рассчитать энтропию Шеннона для конкретной итерации в случайном порядке как
источник
Я знаю, что этому посту уже почти 4 года, но я хобби-криптоаналитик и изучаю шифры игральных карт . В результате я возвращался к этому посту снова и снова, чтобы объяснить перетасовку колоды как источник энтропии для случайного нажатия на колоду. Наконец, я решил проверить ответ с помощью stachyra, перетасовывая колоду вручную и оценивая энтропию колоды после каждого перемешивания.
TL; DR, чтобы максимизировать энтропию колоды:
Во-первых, все, что Стахира упомянул для расчета энтропии Шеннона, верно. Это можно свести к следующему:
Где Стахира делает одно тонкое предположение, это то, что реализация человеческой случайности в компьютерной программе будет сопровождаться некоторым багажом. С бумажными игральными картами, когда они привыкнут, масло из ваших рук переходит на карты. В течение продолжительного времени, из-за накопления масла, карты начнут слипаться, и это приведет к вашей случайности. Чем интенсивнее используется колода, тем больше вероятность того, что две или более смежные карты будут слипаться, и тем чаще это будет происходить.
Далее, предположительно, две дубинки и валет сердец слипаются. Они могут в конечном итоге слипаться на время вашей перетасовки, никогда не отделяясь. Это может быть имитировано в компьютерной программе, но это не так с процедурой R Stachyra.
Также у stachyra есть переменная манипулирования "mixprob". Без полного понимания этой переменной, это немного черный ящик. Вы можете неправильно установить его, влияя на результаты. Итак, я хотел убедиться, что его интуиция была правильной. Поэтому я проверил это вручную.
Я перетасовал колоду 20 раз вручную, в двух разных случаях (всего 40 перетасовок). Во-первых, я просто перетасовал ружье, держа правый и левый порезы близко к четному. Во втором случае я сознательно отрезаю колоду от середины колоды (1/3, 2/5, 1/4 и т. Д.), Прежде чем сделать равномерный разрез для перемешивания. Во втором случае у меня было ощущение, что, обрезая колоду перед перетасовкой и избегая середины, я мог быстрее вводить диффузию в колоду, чем обычная перетасовка.
Вот результаты. Сначала прямолинейное перетасовывание:
А вот рубка колоды в сочетании с перетасовкой:
Похоже, что энтропия максимизируется примерно за половину времени претензии стачиры. Кроме того, моя интуиция была верна, что обрезание колоды преднамеренно было удалено от середины, прежде чем перетасовка риффла действительно привнесла больше диффузии в колоду. Однако после примерно 5 перемешиваний это уже не имело большого значения. Вы можете видеть, что после примерно 6-7 перемешиваний энтропия увеличивается до 10-12, как утверждают мои стачиры. Может ли быть достаточно, что 7 shuffles достаточно, или я ослеп?
Вы можете увидеть мои данные на Google Sheets . Возможно, я записал одну или две игральные карты неправильно, поэтому я не могу гарантировать 100% точность данных.
Важно, чтобы ваши выводы также были независимо проверены. Брэд Манн из факультета математики Гарвардского университета изучил, сколько раз потребуется перетасовать колоду карт, прежде чем предсказуемость любой карты в колоде станет полностью непредсказуемой (энтропия Шеннона максимальна). Его результаты можно найти в этом 33-страничном PDF .
Что интересно в его выводах, так это то, что он на самом деле независимо проверяет статью Перси Диакониса , опубликованную в 1990 году в газете «Нью-Йорк Таймс» , которая утверждает, что 7 тасовок достаточно для тщательного смешивания колоды игральных карт с помощью риффл-тасовки.
Брэд Манн просматривает несколько различных математических моделей в перетасовке, в том числе цепи Маркова, и приходит к следующему выводу:
Брэд Манн просто самостоятельно проверил результат стачиры, а не мой. Итак, я посмотрел поближе на свои данные и обнаружил, что 7 перемешиваний недостаточно. Во-первых, теоретическая максимальная энтропия Шеннона в битах для любой карты в колоде составляет log (52) / log (2) ~ = 5,7 бит. Но мои данные никогда не превышают 5 бит. Любопытно, я создал массив из 52 элементов в Python, перетасовал этот массив:
Расчет его энтропии на карту дает около 4,8 бит. Выполнение этого примерно в дюжине раз показывает аналогичные результаты, варьирующиеся от 5,2 до 4,6 бита, в среднем от 4,8 до 4,9. Так что посмотреть на необработанное значение энтропии моих данных недостаточно, в противном случае я могу назвать это хорошим при 5 перемешиваниях.
Когда я смотрю поближе на свои данные, я заметил количество «нулевых сегментов». Это сегменты, в которых нет данных для дельт между гранями карт для этого номера. Например, при вычитании стоимости двух смежных карт результат «15» отсутствует после вычисления всех 52 дельт.
Я вижу, что в конечном итоге он составляет около 17-18 «нулевых ведер» около 11-12 перемешиваний. Конечно же, моя перетасованная колода через Python имеет в среднем 17-18 «нулевых сегментов», с максимумом 21 и минимумом 14. Почему 17-18 является окончательным результатом, я не могу объяснить ... пока. Но, похоже, мне нужны оба ~ 4,8 бита энтропии И 17 "нулевых сегментов".
С моей обычной перетасовкой, это 11-12 перемешиваний. С моей копией, это 6-7. Так что, когда дело доходит до игр, я бы порекомендовал срезать и перемешать. Это не только гарантирует, что верхняя и нижняя карты смешиваются в колоде на каждом шаффле, но и просто быстрее, чем 11-12 шаффлов. Я не знаю о вас, но когда я играю в карточные игры со своей семьей и друзьями, они не достаточно терпеливы, чтобы я выполнил 12 перемешиваний.
источник