Terningspill med simulering S1 V26

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

P(Erik vinner runde)=234847,9%\underline{\underline{P(\text{Erik vinner runde}) = \dfrac{23}{48} \approx 47{,}9 \,\%}}

Simulering med 100 000 spill gir P(Erik na˚r 100 poeng før Kris)27,8%\underline{\underline{P(\text{Erik når 100 poeng før Kris}) \approx 27{,}8 \,\%}}

LøsningsforslagKI-generert

La EE være antall øyne Erik kaster (EE er uniformt fordelt på {1,2,3,4,5,6}\{1, 2, 3, 4, 5, 6\}) og la M=max(K1,K2)M = \max(K_1, K_2) der K1K_1 og K2K_2 er de to D4-terningene til Kris (hver uniformt fordelt på {1,2,3,4}\{1, 2, 3, 4\}).

Erik vinner runden hvis E>ME > M.

Fordeling av MM:

Vi bruker at P(Mk)=P(K1k)P(K2k)=(k4)2P(M \leq k) = P(K_1 \leq k) \cdot P(K_2 \leq k) = \left(\dfrac{k}{4}\right)^2, siden K1K_1 og K2K_2 er uavhengige.

Dermed er P(M=k)=P(Mk)P(Mk1)=k2(k1)216=2k116P(M = k) = P(M \leq k) - P(M \leq k-1) = \dfrac{k^2 - (k-1)^2}{16} = \dfrac{2k - 1}{16}.

Table: Sannsynlighetsfordeling for MM {.tall}

kkP(M=k)P(M = k)
1116\dfrac{1}{16}
2316\dfrac{3}{16}
3516\dfrac{5}{16}
4716\dfrac{7}{16}

Beregning av P(E>M)P(E > M):

Vi betinger på verdien av MM og bruker at P(E>k)=6k6P(E > k) = \dfrac{6 - k}{6}:

P(E>M)=k=14P(M=k)P(E>k)=11656+31646+51636+71626=596+1296+1596+1496=4696=2348\begin{aligned} P(E > M) &= \sum_{k=1}^{4} P(M = k) \cdot P(E > k) \\[6pt] &= \frac{1}{16} \cdot \frac{5}{6} + \frac{3}{16} \cdot \frac{4}{6} + \frac{5}{16} \cdot \frac{3}{6} + \frac{7}{16} \cdot \frac{2}{6} \\[6pt] &= \frac{5}{96} + \frac{12}{96} + \frac{15}{96} + \frac{14}{96} = \frac{46}{96} = \frac{23}{48} \end{aligned}

P(Erik vinner runden)=234847,9%P(\text{Erik vinner runden}) = \dfrac{23}{48} \approx 47{,}9 \,\%

Siden p=2348<12p = \frac{23}{48} < \frac{1}{2} (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.

P(Erik na˚r 100 poeng før Kris)27,8%P(\text{Erik når 100 poeng før Kris}) \approx 27{,}8 \,\%