Gioco del tredici
Il famoso matematico francese Pierre Raymond De Montmart, noto per i suoi lavori in combinatoria, propose un semplice gioco chiamato Gioco del Tredici. Hai un mazzo di 13 carte, numerate da 1 a 13. Mescola il mazzo ed estrai le carte una alla volta. Si ha una coincidenza quando il numero sulla carta corrisponde alla posizione in cui viene estratta. Per esempio, se la quinta carta che estrai è un 5, è una coincidenza. Vinci la partita se arrivi in fondo a tutte le carte senza alcuna coincidenza. Calcoliamo la probabilità di vincita con una simulazione.
Completando questo esercizio, rafforzerai ulteriormente la tua capacità di tradurre problemi astratti in un framework di simulazione per stimare probabilità.
Questo esercizio fa parte del corso
Simulazione statistica in Python
Istruzioni dell'esercizio
- Per ogni estrazione, pesca tutte le carte in
decksenza reinserimento e assegna il risultato adraw. - Verifica se ci sono coincidenze nell'estrazione e, in tal caso, incrementa il contatore
coincidencesdi 1. - Calcola la probabilità di vincita come frazione delle partite senza alcuna coincidenza e usa
prob_of_winningper stampare i risultati.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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(____))