Programmeringskurs: 3.4 Løkker og logiske tester
Telle firere
Programmering kan være veldig nyttig for å simulere ulike praktiske situasjoner. Det skal vi se mer på i neste delkapittel, men først viser vi hvordan vi kan telle opp hvor mange ett resultat inntreffer i en liste.
La oss si at vi slår en terning 10 ganger. Vi setter opp resultatene av kastene i en liste slik:
#\texttt{kastene = [1, 4, 3, 2, 4, 6, 6, 5, 3, 2]}#
Hvordan kan vi telle opp hvor mange firere det finnes i denne listen?
Bruk en for-løkke til å telle opp hvor mange firere det er i listen nedenfor. Programmet skal skrive ut antall firere.
#\texttt{[1, 4, 3, 2, 4, 6, 6, 5, 3, 2]}#
LØSNING:
Først legger vi inn listen i koden, vi gir den navnet #\texttt{kastene}#. Så definerer en variabel #\texttt{antallFirere}# og setter denne lik null. Deretter bruker vi en #\texttt{for}#-løkke og går gjennom listen. Hvis vi møter på en 4-er i listen økes variabelen #\texttt{antallFirere}# med #\texttt{1}#. (Hvis vi møter på et annet tall, gjøres ikke noe). Til slutt skriver vi ut resultatet.
I matematikken kan vi simulere hendelser ved å la datamaskinen tilfeldig velge utfallet av småforsøk. Det er datamaskinen veldig god på, siden den jobber lynraskt. Vi skal se mer med dette seinere i kapittelet, men vi kan også kombinere manuelle forsøk og målinger med datamaskinens gode evne til å regne. Et klassisk eksempel, er å beregne sannsynligheten for å få en firer når du kaster en terning.
Vi har gjennomført et forøk med kast av terning mauelt. Resultatet av kastene har vi satt opp i denne listen:
[2,2,5,4,1,2,4,5,2,6,4,6,4,5,3,2,4,1,2,2,4,1,1,4,2,5,3,2,6]
Lag et program som teller opp antall kast og antall firere. Programmet skal også regne ut sannsynligheten for å få en firer ut fra denne listen.
LØSNING:
Først legger vi inn resultatet av alle kastene som en liste.
Så teller vi antall kast i lista ved å bruke koden
#\texttt{antallKast = len(kastene)}#
Deretter går vi gjennom listen med en #\texttt{for-}#løkke og teller opp antall firere. Antall firere blir lagret med variabelnavn #\texttt{antallFirere}#.
Til slutt finner vi sannsynligheten for å få firer ved å regne ut
#\frac{\texttt{antallFirere}}{\texttt{antallKast}}#
I vårt eksperiment, blir sjansen for å få firer 0,24. Det stemmer ikke med det forventede svaret, som burde bli #\tfrac{1}{6} = 0,167#. Det er fordi vi må trille terningen mange flere ganger for at eksperimentet skal gi oss et nøyaktig svar. Vi skal snart se hvordan vi kan simulere terningkastene med kode.