Tallfølge med programmering og induksjon
En elev arbeider med en tallfølge og har skrevet denne koden:
a = 2
n = 5
for i in range(1, n + 1):
print(a)
a = a + (i + 2)
Beskriv mønsteret i tallfølgen eleven arbeider med. Hva blir resultatet når koden kjøres?
Eleven har også skrevet denne koden:
a = 2
n = 5
S = 0
for i in range(1, n + 1):
S = S + a
a = a + (i + 2)
print(S)
Hva ønsker eleven nå å finne ut? Hva blir resultatet når koden kjøres?
Tallene fra oppgave a) er starten på en rekke.
Bruk induksjon til å vise at et ledd i rekken kan uttrykkes som
Fasit
Koden skriver ut tallfølgen 2, 5, 9, 14, 20. Differansen mellom leddene starter på 3 og øker med 1 for hvert ledd.
Eleven finner delsummen etter 5 ledd. Programmet skriver ut 50.
Se løsningsforslag (induksjonsbevis).
Løsningsforslag
Her setter vi opp en oversikt for å se hvordan variablene i programmet utvikler seg.
i | a | Beregning av neste a |
|---|---|---|
| 1 | 2 | |
| 2 | 5 | |
| 3 | 9 | |
| 4 | 14 | |
| 5 | 20 |
Vi ser en tallfølge hvor differansene mellom leddene starter på 3, og deretter øker med 1 for hvert ledd. Matematisk kan dette uttrykkes med den rekursive sammenhengen
Koden skriver ut leddene i tallfølgen 2, 5, 9, 14, 20.
Eleven har lagt til en variabel S. S gir en løpende sum av verdiene til a, derfor vil S være delsummen til rekka etter n ledd.
Eleven ønsker å finne delsummen til rekka etter 5 ledd, altså
Påstanden vår er at
Vi viser at dette gjelder for
Vi antar at formelen gjelder for slik at
Vi finner ved å bruke den rekursive sammenhengen fra b).
Deretter finner vi ved å bruke formelen.
Sensorveiledning
1 poeng for å beskrive mønsteret og 1 poeng for riktig resultat av kjøringen.
1 poeng for å beskrive hva eleven ønsker å finne ut og 1 poeng for riktig resultat av kjøringen.
Induksjonsbeviset må kommuniseres godt for å få full uttelling.