Lese kode: summere en rekke
En -løkke som summerer legger tallene sammen ett om gangen. Les den ovenfra og ned, og hold styr på hva variablene inneholder etter hver runde.```pythonsum = 0for i in range(1, 6):sum = sum + iprint(sum)```Her går gjennom ( stopper før 6). Summen blir . Dette er en aritmetisk rekke.En geometrisk rekke bygger på en konstant kvotient. Her ganges leddet med hver runde:```pythonledd = 8sum = 0for i in range(5):sum = sum + leddledd = ledd * 0.5print(sum)```Leddene er , og summen blir . Sammenlign med formelen .
Lese kode: while-løkke med terskel
En -løkke kjører så lenge betingelsen er sann. Den er nyttig når du ikke vet antall runder på forhånd, men vil kjøre helt til en terskel er nådd.```pythonsum = 0n = 0while sum < 100:n = n + 1sum = sum + nprint(n, sum)```Programmet legger til helt til summen når eller mer. Etter er , som er første gang . Utskriften blir .Merk rekkefølgen: betingelsen sjekkes FØR hver runde. Løkka stopper straks betingelsen blir usann. Pass på at noe inne i løkka endrer betingelsen, ellers kjører den i det uendelige.
Skrive kode: rekursiv tallfølge
En rekursiv følge er definert ved at et ledd regnes ut fra det forrige. For eksempel og . For å skrive dette lagrer du forrige ledd i en variabel og oppdaterer den i en løkke.```pythona = 2print(a)for n in range(4):a = 3 * a + 1print(a)```Programmet skriver ut . Variabelen holder alltid det nyeste leddet, og linja er selve rekursjonsformelen.Vil du ta vare på alle leddene, kan du bruke en liste:```pythonfolge = [2]for n in range(4):neste = 3 * folge[-1] + 1folge.append(neste)print(folge)``` er det siste leddet i lista. Utskriften blir .
Simulering: sannsynlighet med tilfeldige tall
Du kan anslå en sannsynlighet ved å simulere mange forsøk og telle hvor ofte hendelsen skjer. Andelen treff nærmer seg den teoretiske sannsynligheten når antall forsøk øker (store talls lov).Eksempel: kast to terninger og anslå .```pythonimport randomtreff = 0N = 100000for i in range(N):t1 = random.randint(1, 6)t2 = random.randint(1, 6)if t1 + t2 == 7:treff = treff + 1print(treff / N)``` gir et tilfeldig heltall fra 1 til 6. Utskriften ligger nær , som er den teoretiske sannsynligheten.
Simulering: forventning med normalfordeling
Med trekker du tilfeldige tall fra en normalfordeling . Da kan du anslå både en forventningsverdi og en sannsynlighet ved simulering.Eksempel: høyder er normalfordelt med og . Anslå og gjennomsnittet.```pythonimport randomN = 100000treff = 0sum_hoyde = 0for i in range(N):x = random.gauss(170, 8)sum_hoyde = sum_hoyde + xif x > 180:treff = treff + 1print(treff / N)print(sum_hoyde / N)```Andelen ligger nær (samsvarer med z-verdien ), og gjennomsnittet ligger nær , altså forventningsverdien .
Tips
Sjekk alltid grensene i : gir , mens gir .I en -løkke må noe inne i løkka endre betingelsen, ellers stopper den aldri.Simulering gir et anslag, ikke et eksakt svar. Flere forsøk gir vanligvis bedre nøyaktighet.
Om eksempeloppgavene
Eksempelet er en while-løkke som stopper ved en terskel, og du skal lese hva den gir. Stoppvilkåret er nøkkelen.Alle teknikkene i Matte S2 står på Lær Matte S2.