Začněte nyníZačněte zdarma

Hra třinácti

Slavný francouzský matematik Pierre Raymond De Montmort, známý svou prací v oblasti kombinatoriky, navrhl jednoduchou hru zvanou Hra třinácti. Máš balíček 13 karet, každá je očíslovaná od 1 do 13. Balíček zamíchej a taš karty jednu po druhé. Shoda nastane tehdy, když číslo na kartě odpovídá pořadí, v němž byla karta tažena. Například pokud je 5. tažená karta číslo 5, jde o shodu. Hru vyhraješ, pokud projdeš celým balíčkem bez jediné shody. Pomocí simulace spočítáme pravděpodobnost výhry v této hře.

Tímto cvičením si dále prohloubíš schopnost převádět abstraktní problémy do simulačního rámce pro odhadování pravděpodobností.

Toto cvičení je součástí kurzu

Statistické simulace v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Při každém tahu vytáhni všechny karty z deck bez vracení a výsledek ulož do draw.
  • Zkontroluj, zda se v tahu vyskytly nějaké shody, a pokud ano, zvyš počítadlo coincidences o 1.
  • Vypočítej pravděpodobnost výhry jako podíl her bez jakýchkoli shod a výsledek vypiš pomocí prob_of_winning.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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(____))
Upravit a spustit kód