Eu escrevi um programa para simular um embaralhamento de cartão overhand .
Cada carta é numerada, com o naipe passando CLUBS, DIAMONDS, HEARTS, SPADES
e a classificação de Dois a Dez, depois Valete, Rainha, Rei e Ás. Assim, o Two of Clubs tem um número 1, o Three of Clubs um 2 .... O Ace of Clubs tem 13 ... O Ace of Spades tem 52.
Um dos métodos para determinar como as cartas são embaralhadas é compará-lo a uma carta não embaralhada e verificar se a ordem das cartas está correlacionada.
Ou seja, eu posso ter estes cartões, com o cartão não embaralhado para comparação:
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
A correlação pelo método de Pearson seria: 0,6
Com um grande conjunto de cartas (todas as 52), você pode ver padrões emergindo. Minha hipótese é que, após mais embaralhamento, você terá menos correlação.
No entanto, existem várias maneiras de medir a correlação.
Eu tentei a correlação de Pearson, mas não tenho certeza se essa é a correlação correta a ser usada nessa situação.
Essa é uma medida de correlação adequada? Existe uma medida mais adequada?
Pontos de bônus Às vezes, vejo esse tipo de dados nos meus resultados:
Claramente, há alguma correlação, mas não sei como você mede as 'linhas de tendência' separadas?
fonte
Respostas:
Você pode medir o nível relativo de correlação (ou mais precisamente, o nível crescente de aleatoriedade) usando a entropia de Shannon da diferença no valor de face entre todos os pares de cartas adjacentes.
fonte
Eu sei que este post tem quase 4 anos, mas sou um criptoanalista amador e tenho estudado cifras de cartas de baralho . Como resultado, voltei repetidamente a este post para explicar a baralhamento do baralho como fonte de entropia para a digitação aleatória do baralho. Finalmente, decidi verificar a resposta por stachyra embaralhando o baralho manualmente e calculando a entropia do baralho após cada baralhamento.
TL; DR, para maximizar a entropia do convés:
Primeiro, tudo o que a stachyra mencionou para calcular a entropia de Shannon está correto. Pode ser resumido desta maneira:
Onde stachyra faz uma suposição sutil, é que implementar um embaralhamento humano em um programa de computador virá com alguma bagagem. Com as cartas de baralho em papel, à medida que elas são usadas, o óleo das suas mãos é transferido para as cartas. Por um longo período de tempo, devido ao acúmulo de óleo, os cartões começarão a ficar colados e isso acabará no seu embaralhamento. Quanto mais usado o baralho, maior a probabilidade de duas ou mais cartas adjacentes ficarem juntas e mais frequentemente isso acontecerá.
Além disso, supõe-se que os dois clubes e valete de copas permaneçam juntos. Eles podem acabar presos juntos pela duração do embaralhamento, nunca se separando. Isso pode ser imitado em um programa de computador, mas esse não é o caso da rotina R da stachyra.
Além disso, stachyra tem uma variável de manipulação "mixprob". Sem entender completamente essa variável, é um pouco de uma caixa preta. Você pode configurá-lo incorretamente, afetando os resultados. Então, eu queria ter certeza de que sua intuição estava correta. Então eu verifiquei à mão.
Embaralhei o baralho 20 vezes com a mão, em dois casos diferentes (40 no total). Em um primeiro momento, eu apenas embaralhei, mantendo os cortes direito e esquerdo quase iguais. Na segunda instância, cortei o deck deliberadamente para longe do meio do deck (1/3, 2/5, 1/4 etc.) antes de fazer um corte uniforme para a reprodução aleatória. Meu instinto, no segundo caso, foi que, cortando o convés antes de embaralhar, e ficando longe do meio, eu poderia introduzir difusão no convés mais rapidamente do que embaralhar normalmente.
Aqui estão os resultados. Primeiro, embaralhamento direto da espingarda:
E aqui está o corte do baralho combinado com a reprodução aleatória:
Parece que a entropia é maximizada em cerca de 1/2 do tempo da reivindicação por estaquira. Além disso, minha intuição estava correta ao cortar o convés deliberadamente longe do meio primeiro, antes que o embaralhamento de rifles introduzisse mais difusão no convés. No entanto, após cerca de 5 shuffles, isso realmente não importava mais. Você pode ver que, após cerca de 6 a 7 embaralhamento, a entropia é maximizada, em comparação com os 10 a 12, conforme a reivindicação fez minha estacira. Seria possível que 7 shuffles sejam suficientes ou estou sendo cego?
Você pode ver meus dados no Planilhas Google . É possível que eu tenha gravado um ou dois cartões incorretamente, por isso não posso garantir 100% de precisão com os dados.
É importante que suas descobertas também sejam verificadas independentemente. Brad Mann, do Departamento de Matemática da Universidade de Harvard, estudou quantas vezes seriam necessárias para embaralhar um baralho antes que a previsibilidade de qualquer cartão no baralho fosse completamente imprevisível (a entropia de Shannon é maximizada). Seus resultados podem ser encontrados neste PDF de 33 páginas .
O interessante de suas descobertas é que ele está realmente verificando independentemente um artigo do New York Times de 1990 por Persi Diaconis , que afirma que 7 baralhos são suficientes para misturar minuciosamente um baralho de cartas através do baralho de cartas.
Brad Mann percorre alguns modelos matemáticos diferentes em embaralhamento, incluindo cadeias de Markov, e chega à seguinte conclusão:
Brad Mann apenas verificou independentemente o resultado da estaquira, e não o meu. Então, olhei mais de perto meus dados e descobri por que 7 shuffles não são suficientes. Primeiro, a entropia máxima teórica de Shannon em bits para qualquer cartão no baralho é log (52) / log (2) ~ = 5,7 bits. Mas meus dados nunca quebram muito acima de 5 bits. Curioso, criei uma matriz de 52 elementos em Python, embaralhei essa matriz:
O cálculo da sua entropia por cartão produz cerca de 4,8 bits. Fazer isso uma dúzia de vezes mostra resultados semelhantes, variando entre 5,2 e 4,6 bits, com média de 4,8 a 4,9. Portanto, analisar o valor bruto da entropia dos meus dados não é suficiente; caso contrário, eu poderia chamá-lo de bom em 5 shuffles.
Quando olho mais de perto meus dados, notei o número de "zero buckets". São baldes em que não há dados para deltas entre as faces do cartão para esse número. Por exemplo, ao subtrair o valor de duas cartas adjacentes, não há resultado "15" após o cálculo de todos os 52 deltas.
Vejo que, eventualmente, se instala entre 17 e 18 "zero baldes" entre 11 e 12 shuffles. Com certeza, meu baralho embaralhado via Python tem em média 17-18 "zero buckets", com um máximo de 21 e um mínimo de 14. Por que 17-18 é o resultado estabelecido, não sei explicar ... ainda. Mas, parece que eu quero os dois ~ 4,8 bits de entropia E 17 "zero buckets".
Com o meu estoque riffle baralhar, são 11-12 baralhar. Com o meu corte e reprodução aleatória, são 6-7. Então, quando se trata de jogos, eu recomendaria cortar e embaralhar. Isso não apenas garante que as cartas superior e inferior sejam misturadas no baralho em cada baralhamento, como também é mais rápido do que 11-12 baralhamento. Eu não sei sobre você, mas quando estou jogando cartas com minha família e amigos, eles não são pacientes o suficiente para eu fazer 12 baralhas aleatórias.
fonte