LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Ziehe bei jeder Runde alle Karten aus deck ohne Zurücklegen und weise sie draw zu.
  • Prüfe, ob es Übereinstimmungen im Ziehungsergebnis gibt, und erhöhe in diesem Fall den Zähler coincidences um 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(____))
Code bearbeiten und ausführen