Jogo dos treze
Um famoso matemático francês, Pierre Raymond De Montmart, conhecido por seu trabalho em combinatória, propôs um jogo simples chamado Jogo dos Treze. Você tem um baralho de 13 cartas, numeradas de 1 a 13. Embaralhe esse baralho e puxe as cartas uma a uma. Há uma coincidência quando o número da carta corresponde à ordem em que ela é puxada. Por exemplo, se a 5ª carta que você tirar for um 5, isso é uma coincidência. Você vence o jogo se passar por todas as cartas sem nenhuma coincidência. Vamos calcular a probabilidade de vencer esse jogo usando simulação.
Ao concluir este exercício, você vai reforçar sua habilidade de transformar problemas abstratos em um esquema de simulação para estimar probabilidades.
Este exercício faz parte do curso
Simulação Estatística em Python
Instruções do exercício
- Em cada rodada, tire todas as cartas de
decksem reposição e atribua adraw. - Verifique se há alguma coincidência no sorteio e, se houver, incremente o contador
coincidencesem 1. - Calcule a probabilidade de vitória como a fração de jogos sem nenhuma coincidência e use
prob_of_winningpara imprimir seus resultados.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Pre-set constant variables
deck, sims, coincidences = np.arange(1, 14), 10000, 0
for _ in range(sims):
# Draw all the cards without replacement to simulate one game
draw = np.random.choice(____, size=____, replace=____)
# Check if there are any coincidences
coincidence = (draw == list(np.arange(1, 14))).any()
if coincidence == ____:
coincidences += 1
# Calculate probability of winning
prob_of_winning = ____
print("Probability of winning = {}".format(____))