CByggareLaboration· ca 40 min· i webbläsaren
Labb: simulera tärningar och jämför med teorin
Skatta en sannolikhet med simulering (Monte Carlo) och se att frekvensen närmar sig teorin när antalet försök växer.
Teori
P(summan av två tärningar = 7) = 6/36 ≈ 0,167. Simulera 20 000 kast med ett fast slumpfrö och räkna andelen sjuor. Relativ frekvens → sannolikhet (stora talens lag).
Deluppgifter
- kasta_tva(rng) — Returnera summan av två tärningskast med
rng.randint(1, 6). - andel_sjuor(n, seed) — Simulera n kast med
random.Random(seed)och returnera andelen som blev 7. - teoretisk_sannolikhet(summa) — Returnera den exakta sannolikheten för en given summa 2–12.
Startkoden
körs i din webbläsareimport random
def kasta_tva(rng):
# TODO: summan av två kast med rng.randint(1, 6)
...
def andel_sjuor(n, seed=0):
# TODO: rng = random.Random(seed); räkna hur många av n kast som blir 7
...
def teoretisk_sannolikhet(summa):
# TODO: antal gynnsamma par (a, b) med a + b == summa, delat med 36
...
Du skriver koden, tester du inte ser avgör om den håller. Skapa ett gratis konto för att köra labben.
Prova diagnosenSkapa konto gratisFörväntade resultat
andel_sjuor(20000, 1) inom ±0,01 från 0,1667; teoretisk_sannolikhet(7) = 6/36; teoretisk_sannolikhet(2) = 1/36.
Vanliga fel
randint(1, 6)inkluderar 6 (till skillnad frånrange).- Nytt slumpfrö i varje anrop gör resultatet oreproducerbart — skapa
Random(seed)en gång. - Räknar summor 1–12 i stället för 2–12.