Jocul celor treisprezece
Pierre Raymond De Montmart, un renumit matematician francez cunoscut pentru contribuțiile sale în combinatorică, a propus un joc simplu numit Jocul celor treisprezece. Ai un pachet de 13 cărți, numerotate de la 1 la 13. Amestecă pachetul și trage câte o carte pe rând. O coincidență apare atunci când numărul de pe carte se potrivește cu ordinea în care a fost trasă. De exemplu, dacă a cincea carte trasă este chiar numărul 5, aceasta este o coincidență. Câștigi jocul dacă treci prin toate cărțile fără nicio coincidență. Să calculăm probabilitatea de a câștiga folosind simularea.
Prin rezolvarea acestui exercițiu, îți vei consolida și mai mult capacitatea de a transforma probleme abstracte într-un cadru de simulare pentru estimarea probabilităților.
Acest exercițiu face parte din cursul
Simulare statistică în Python
Instrucțiuni pentru exercițiu
- Pentru fiecare tragere, extrage toate cărțile din
deckfără înlocuire și atribuie rezultatul variabileidraw. - Verifică dacă există coincidențe în tragere și, dacă există, incrementează contorul
coincidencescu 1. - Calculează probabilitatea de a câștiga ca fracție din jocurile fără nicio coincidență și folosește
prob_of_winningpentru a afișa rezultatele.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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(____))