Kom igångKom igång gratis

Trettonspelet

Den franske matematikern Pierre Raymond De Montmort, känd för sitt arbete inom kombinatorik, skapade ett enkelt spel kallat trettonspelet. Du har en kortlek med 13 kort, numrerade från 1 till 13. Blanda leken och dra ett kort i taget. Ett sammanträffande inträffar när kortets nummer stämmer överens med den ordning kortet drogs – om det femte kortet du drar råkar vara en 5 är det alltså ett sammanträffande. Du vinner om du tar dig igenom hela leken utan några sammanträffanden. Vi beräknar sannolikheten att vinna med hjälp av simulering.

Genom att slutföra den här övningen stärker du din förmåga att omvandla abstrakta problem till ett simuleringsramverk för att uppskatta sannolikheter.

Den här övningen är en del av kursen

Statistisk simulering i Python

Visa kurs

Övningsinstruktioner

  • Dra alla kort i deck utan återläggning för varje dragning och tilldela resultatet till draw.
  • Kontrollera om det finns några sammanträffanden i dragningen och öka i så fall räknaren coincidences med 1.
  • Beräkna vinstannolikheten som andelen omgångar utan några sammanträffanden och använd prob_of_winning för att skriva ut resultatet.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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(____))
Redigera och kör kod