Het dertien-spel
De beroemde Franse wiskundige Pierre Raymond De Montmart, bekend om zijn werk in de combinatoriek, stelde een eenvoudig spel voor: het dertien-spel. Je hebt een stapel van 13 kaarten, genummerd van 1 tot en met 13. Schud de stapel en trek de kaarten één voor één. Er is sprake van een toevalligheid wanneer het getal op de kaart overeenkomt met de positie waarop je de kaart trekt. Als de 5e kaart die je trekt bijvoorbeeld een 5 is, is dat een toevalligheid. Je wint het spel als je alle kaarten kunt trekken zonder enige toevalligheid. Laten we met een simulatie de kans berekenen dat je dit spel wint.
Door deze oefening te maken, versterk je je vaardigheid om abstracte problemen te vertalen naar een simulatieraamwerk om kansen te schatten.
Deze oefening maakt deel uit van de cursus
Statisticale simulatie in Python
Oefeninstructies
- Trek bij elke trekking alle kaarten in
deckzonder terugleggen en wijs deze toe aandraw. - Controleer of er toevalligheden in de trekking zitten en verhoog, als die er zijn, de teller
coincidencesmet 1. - Bereken de winstkans als het aandeel spellen zonder toevalligheden en gebruik
prob_of_winningom je resultaten te printen.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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(____))