Terningspill med simulering S1 V26
Erik og Kris spiller et terningspill. Spillet foregår over flere runder. Nedenfor ser du reglene som gjelder for én runde.
- Erik kaster en terning med seks sider, nummerert med sifrene 1 til 6.
- Kris kaster to terninger. Hver terning har fire sider, nummerert med sifrene 1 til 4.
- Erik sammenligner sin terning med den terningen til Kris som viser høyest verdi. Dersom terningen til Erik viser en høyere verdi, får han 1 poeng. Dersom terningen til Erik ikke viser en høyere verdi, får Kris 1 poeng.
Bestem sannsynligheten for at Erik får poeng i den første runden de spiller.
Erik og Kris spiller flere runder.
Bruk simulering til å bestemme sannsynligheten for at Erik får 100 poeng før Kris.
Fasit
Simulering med 100 000 spill gir
LøsningsforslagKI-generert
La være antall øyne Erik kaster ( er uniformt fordelt på ) og la der og er de to D4-terningene til Kris (hver uniformt fordelt på ).
Erik vinner runden hvis .
Fordeling av :
Vi bruker at , siden og er uavhengige.
Dermed er .
Table: Sannsynlighetsfordeling for {.tall}
| 1 | |
| 2 | |
| 3 | |
| 4 |
Beregning av :
Vi betinger på verdien av og bruker at :
Siden (Erik er svakere enn Kris i hver runde), forventer vi at Erik sjeldnere når 100 poeng først. Vi estimerer sannsynligheten med en Monte Carlo-simulering.
Python-kode:
import numpy as np
rng = np.random.default_rng(42)
N = 100_000
erik_vinner_spillet = 0
for _ in range(N):
erik_poeng = 0
kris_poeng = 0
while erik_poeng < 100 and kris_poeng < 100:
e = rng.integers(1, 7) # D6: 1–6
m = max(rng.integers(1, 5), # max av to D4: 1–4
rng.integers(1, 5))
if e > m:
erik_poeng += 1
else:
kris_poeng += 1
if erik_poeng >= 100:
erik_vinner_spillet += 1
print(f"P(Erik når 100 poeng først) ≈ {erik_vinner_spillet / N:.4f}")
Resultat: Med 100 000 simulerte spill (seed 42) fikk vi P ≈ 0.2778.