Ukjent program Mønster v23

Ukjent program Mønster v23

Martin har skrevet følgende kode:

import random

N = 100000

samlet_gevinst = 0

for i in range(N):
	mynt1 = random.randint(0, 1)
	mynt2 = random.randint(0, 1)
	resultat = mynt1 + mynt2
	gevinst = -50 + 40*resultat
	samlet_gevinst += gevinst

print(samlet_gevinst)

Forklar hva Martin ønsker å simulere og regne ut.

Hva blir det eksakte svaret på oppgaven Martin ønsker å løse?

Fasit

Martin simulerer et spill der man kaster to mynter og beregner samlet gevinst etter 100000100\,000 spill.

1000000kr\mathbf{-1\,000\,000} \, \mathrm{kr}

Løsningsforslag

Programmet simulerer et spill der man kaster to mynter. Vi går gjennom linje for linje:

  • N = 100000 — antall spill som simuleres.
  • samlet_gevinst = 0 — telleren for total gevinst starter på 0.
  • for i in range(N): — løkken kjøres 100000100\,000 ganger.
  • mynt1 = random.randint(0, 1) — kaster den første mynten. randint(0, 1) gir tilfeldig 0 eller 1 med lik sannsynlighet (0 = kron, 1 = mynt).
  • mynt2 = random.randint(0, 1) — kaster den andre mynten på samme måte.
  • resultat = mynt1 + mynt2 — teller antall mynt (1-ere) i kastet. resultat kan være 0, 1 eller 2.
  • gevinst = -50 + 40 * resultat — beregner gevinsten for dette spillet:
    • 0 mynt: 50+400=50kr-50 + 40 \cdot 0 = -50 \, \mathrm{kr}
    • 1 mynt: 50+401=10kr-50 + 40 \cdot 1 = -10 \, \mathrm{kr}
    • 2 mynt: 50+402=30kr-50 + 40 \cdot 2 = 30 \, \mathrm{kr}
  • samlet_gevinst += gevinst — legger gevinsten til den løpende summen.
  • print(samlet_gevinst) — skriver ut total gevinst etter alle 100000100\,000 spill.

Martin ønsker altså å simulere et myntkast-spill og estimere den samlede gevinsten (eller tapet) etter 100000100\,000 spill.

La XX = antall mynt (1-ere) i to kast. XX er binomisk fordelt med n=2n = 2 og p=12p = \frac{1}{2}.

Sannsynlighetene er:

P(X=0)=(20)(12)2=14P(X = 0) = \binom{2}{0} \left(\frac{1}{2}\right)^2 = \frac{1}{4} P(X=1)=(21)(12)1(12)1=12P(X = 1) = \binom{2}{1} \left(\frac{1}{2}\right)^1 \left(\frac{1}{2}\right)^1 = \frac{1}{2} P(X=2)=(22)(12)2=14P(X = 2) = \binom{2}{2} \left(\frac{1}{2}\right)^2 = \frac{1}{4}

Forventet gevinst per spill:

E(G)=5014+(10)12+3014=12,55+7,5=10kr\begin{aligned} \text{E}(G) &= -50 \cdot \frac{1}{4} + (-10) \cdot \frac{1}{2} + 30 \cdot \frac{1}{4} \\ &= -12{,}5 - 5 + 7{,}5 \\ &= -10 \, \mathrm{kr} \end{aligned}

Eksakt total samlet gevinst over 100000100\,000 spill:

100000(10)=1000000kr100\,000 \cdot (-10) = \mathbf{\underline{\underline{-1\,000\,000 \, \mathrm{kr}}}}

Martin kan forvente et tap på 1000000kr\mathbf{1\,000\,000 \, \mathrm{kr}} etter 100000100\,000 spill.