Napisałem program do symulacji występowi karty Losowo.
Każda karta jest ponumerowana, kolor odpowiada, od CLUBS, DIAMONDS, HEARTS, SPADES
rangi od dwóch do dziesięciu, a następnie Jacka, Królowej, Króla i Asa. Zatem Two of Clubs ma liczbę 1, Three of Clubs 2 ... As trefl wynosi 13 ... As pik wynosi 52.
Jedną z metod ustalenia, jak potasowane są karty, jest porównanie ich z nietasowaną kartą i sprawdzenie, czy kolejność kart jest skorelowana.
Oznacza to, że mogę mieć te karty z niepasowaną kartą do porównania:
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
Korelacja metodą Pearsona wynosiłaby: 0,6
Przy dużym zestawie kart (wszystkie 52) mogą pojawić się wzorce. Moja hipoteza jest taka, że po większym tasowaniu uzyskasz mniejszą korelację.
Istnieje jednak wiele sposobów pomiaru korelacji.
Próbowałem swoich sił w korelacji Pearsona, ale nie jestem pewien, czy jest to właściwa korelacja do zastosowania w tej sytuacji.
Czy to odpowiednia miara korelacji? Czy istnieje bardziej odpowiedni środek?
Punkty bonusowe Czasami widzę takie dane w moich wynikach:
Oczywiście istnieje pewna korelacja, ale nie wiem, jak mierzysz osobne „linie trendu”?
źródło
Odpowiedzi:
Możesz zmierzyć względny poziom korelacji (a ściślej rosnący poziom losowości) za pomocą entropii Shannona różnicy wartości nominalnej między wszystkimi parami sąsiednich kart.
Oto jak to obliczyć dla losowo tasowanej talii 52 kart. Zaczynasz od zapętlenia całej talii i zbudowania swego rodzaju histogramu. Dla każdej pozycji kartyi = 1 , 2 , . . . , 52 , oblicz różnicę wartości nominalnej Δfaja=fai + 1-faja . Aby uczynić to bardziej konkretnym, powiedzmy, że karta w( i + 1 ) pozycja jest królem pik, a karta w ja czwarta pozycja to cztery kluby. Potem będziefai + 1= 51 i faja= 3 i Δfaja= 51 - 3 = 48 . Kiedy dojdziesz doi = 52 , to szczególny przypadek; ponownie zapętlasz się z powrotem na początek talii i bierzeszΔfa52=fa1-fa52 . Jeśli skończą się liczby ujemne dla dowolnego zΔ F dodaj 52, aby sprowadzić różnicę wartości nominalnej z powrotem do zakresu 1-52.
Otrzymasz zestaw różnic wartości nominalnej dla 52 par sąsiednich kart, z których każda mieści się w dozwolonym zakresie od 1-52; policz ich względną częstotliwość za pomocą histogramu (tj. jednowymiarowej tablicy) z 52 elementami. Histogram rejestruje rodzaj „obserwowanego rozkładu prawdopodobieństwa” dla talii; możesz znormalizować ten rozkład, dzieląc liczby w każdym przedziale przez 52. W ten sposób powstanie szereg zmiennychp1,p2), . . .p52 gdzie każda z nich może przyjąć dyskretny zakres możliwych wartości: {0, 1/52, 2/52, 3/52 itd.} w zależności od tego, ile różnic par wartości twarzy trafiło losowo do określonego przedziału histogramu.
Po utworzeniu histogramu możesz obliczyć entropię Shannona dla określonej iteracji losowania jako
źródło
Wiem, że ten post ma prawie 4 lata, ale jestem hobbystycznym kryptoanalitykiem i studiuję szyfrów do gry . W rezultacie wielokrotnie powracałem do tego postu, aby wyjaśnić tasowanie talii jako źródło entropii do losowego wpisywania talii. W końcu postanowiłem zweryfikować odpowiedź przez stachyrę, ręcznie tasując talię i oceniając entropię talii po każdym tasowaniu.
TL; DR, aby zmaksymalizować entropię pokładu:
Po pierwsze, wszystko, co wspominała Stachyra do obliczania entropii Shannona, jest poprawne. Można go sprowadzić w ten sposób:
Stachyra przyjmuje jedno subtelne założenie, że wprowadzenie losowego losu w programie komputerowym przyniesie trochę bagażu. Dzięki papierowym kartom do gry, gdy się przyzwyczają, olej z rąk przenosi się na karty. Z biegiem czasu, z powodu nagromadzenia ropy, karty zaczną się sklejać, a to skończy się tasowaniem. Im bardziej intensywnie używana talia, tym bardziej prawdopodobne, że dwie lub więcej sąsiadujących ze sobą kart sklei się i tym częściej będzie się to zdarzało.
Co więcej, przypuszczalnie dwa kluby i walet kier trzymają się razem. Mogą skończyć się razem podczas tasowania, nigdy się nie rozdzielając. Można to naśladować w programie komputerowym, ale nie jest tak w przypadku procedury R. Stachyry.
Ponadto Stachyra ma zmienną manipulacyjną „mixprob”. Bez pełnego zrozumienia tej zmiennej jest to trochę czarna skrzynka. Możesz go nieprawidłowo ustawić, wpływając na wyniki. Chciałem więc upewnić się, że jego intuicja jest poprawna. Więc zweryfikowałem to ręcznie.
Przetasowałem talię 20 razy ręcznie, w dwóch różnych przypadkach (40 losowych tasowań). W pierwszej kolejności po prostu przetasowałem, trzymając prawe i lewe cięcia prawie równe. W drugim przypadku celowo odciąłem talię od jej środka (1/3, 2/5, 1/4 itd.), Zanim wykonałem równomierne cięcie dla przetasowania riffle. Moje drugie przeczucie było takie, że przecinając pokład przed tasowaniem i trzymając się z dala od środka, mogłem wprowadzić dyfuzję do pokładu szybciej niż tasowanie karabinu podstawowego.
Oto wyniki. Po pierwsze, tasowanie karabinu prostego:
A oto cięcie talii w połączeniu z tasowaniem karabinów:
Wydaje się, że entropia zostaje zmaksymalizowana w około 1/2 czasu roszczenia przez Stachyrę. Co więcej, moja intuicja była słuszna, że celowe odcięcie talii od środka najpierw, zanim tasowanie karabinów wprowadziło więcej dyfuzji do talii. Jednak po około 5 losach nie miało to już większego znaczenia. Widać, że po około 6-7 przetasowaniach entropia jest zmaksymalizowana w porównaniu z 10-12, gdy roszczenie uczyniło moją stachyrę. Czy to możliwe, że 7 tasowań jest wystarczających, czy też jestem oślepiony?
Możesz zobaczyć moje dane w Arkuszach Google . Możliwe, że źle zapisałem jedną lub dwie karty do gry, więc nie mogę zagwarantować 100% dokładności danych.
Ważne jest, aby twoje ustalenia również były niezależnie weryfikowane. Brad Mann z Wydziału Matematyki na Uniwersytecie Harvarda zbadał, ile razy potrzeba potasować talię kart, zanim przewidywalność dowolnej karty w talii jest całkowicie nieprzewidywalna (entropia Shannona jest zmaksymalizowana). Jego wyniki można znaleźć w tym 33-stronicowym pliku PDF .
Co ciekawe, jego odkrycia polegają na tym, że w rzeczywistości samodzielnie weryfikuje artykuł Persi Diaconisa z 1990 roku napisany przez New York Timesa , który twierdzi, że 7 tasowań wystarcza do dokładnego wymieszania talii kart do gry za pomocą tasowania riffle.
Brad Mann omija kilka różnych modeli matematycznych, w tym łańcuchy Markowa, i dochodzi do następującego wniosku:
Brad Mann właśnie niezależnie zweryfikował wynik stachyry, a nie mój. Spojrzałem więc bliżej na moje dane i odkryłem, dlaczego 7 przetasowań nie jest wystarczających. Po pierwsze, teoretyczna maksymalna entropia Shannona w bitach dla dowolnej karty w talii to log (52) / log (2) ~ = 5,7 bitów. Ale moje dane nigdy tak naprawdę nie łamią się znacznie powyżej 5 bitów. Co ciekawe, stworzyłem tablicę 52 elementów w Pythonie, przetasowałem tę tablicę:
Obliczenie entropii na kartę daje około 4,8 bitów. Wykonanie tego kilkanaście razy pokazuje podobne wyniki w zakresie od 5,2 do 4,6 bitów, przy średniej od 4,8 do 4,9. Więc spojrzenie na surową wartość entropii moich danych nie wystarczy, w przeciwnym razie mógłbym to nazwać dobrą przy 5 losowych losach.
Kiedy przyglądam się bliżej moim danym, zauważyłem liczbę „zerowych segmentów”. Są to segmenty, w których nie ma danych dotyczących różnic między powierzchniami kart dla tego numeru. Na przykład, odejmując wartość dwóch sąsiednich kart, nie ma wyniku „15” po obliczeniu wszystkich 52 delt.
Widzę, że ostatecznie ustala się około 17-18 „zerowych wiader” około 11-12 przetasowań. Rzeczywiście, moja tasowana talia za pomocą Pythona wynosi średnio 17–18 „zero wiader”, z wysokim 21 i niskim 14. Dlaczego 17-18 jest ustalonym wynikiem, nie potrafię wyjaśnić… jeszcze. Wygląda jednak na to, że chcę zarówno ~ 4,8 bitów entropii ORAZ 17 „zerowych koszy”.
Z moim tasowaniem karabinu podstawowego to 11-12 przetasowań. W moim przypadku „cut and shuffle” to 6-7. Jeśli chodzi o gry, polecam cut-and-shuffles. Gwarantuje to nie tylko, że górne i dolne karty mieszają się w talii przy każdym tasowaniu, ale jest też po prostu szybsze niż 11-12 tasowań. Nie wiem o tobie, ale kiedy gram w gry karciane z rodziną i przyjaciółmi, nie są oni wystarczająco cierpliwi, aby wykonać 12 losowych riffów.
źródło