Game of Thirteen
Ein berühmter französischer Mathematiker, Pierre Raymond De Montmart, bekannt für seine Arbeiten in der Kombinatorik, schlug ein einfaches Spiel namens Game of Thirteen vor. Du hast ein Deck mit 13 Karten, nummeriert von 1 bis 13. Mische das Deck und ziehe die Karten nacheinander. Eine Übereinstimmung liegt vor, wenn die Zahl auf der Karte mit der Position übereinstimmt, an der sie gezogen wird. Wenn also die 5. gezogene Karte eine 5 ist, ist das eine Übereinstimmung. Du gewinnst, wenn du alle Karten ohne eine einzige Übereinstimmung durchgehst. Lass uns die Gewinnwahrscheinlichkeit für dieses Spiel mithilfe einer Simulation berechnen.
Mit dieser Übung stärkst du weiter deine Fähigkeit, abstrakte Probleme in ein Simulationsframework zu übertragen, um Wahrscheinlichkeiten zu schätzen.
Diese Übung ist Teil des Kurses
Statistische Simulation in Python
Anleitung zur Übung
- Ziehe bei jeder Runde alle Karten aus
deckohne Zurücklegen und weise siedrawzu. - Prüfe, ob es Übereinstimmungen im Ziehungsergebnis gibt, und erhöhe in diesem Fall den Zähler
coincidencesum 1. - Berechne die Gewinnwahrscheinlichkeit als den Anteil der Spiele ohne Übereinstimmungen und verwende
prob_of_winning, um dein Ergebnis auszugeben.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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(____))