Forside / Python i matematikk: oppgave med løkker og oddetall
Python i matematikk: utforsk summen av oddetall
Hva skjer når vi legger sammen de første oddetallene? Denne lille Python-oppgaven lar elevene undersøke et tallmønster og sammenligne kode med en matematisk forklaring.
Oppgaven kan brukes som en introduksjon til løkker og variabler på ungdomsskolen eller som repetisjon på videregående. Tilpass antall steg og spørsmålene til elevgruppen.
Start med en forventning
La elevene regne ut 1, deretter 1 + 3, så 1 + 3 + 5 og til slutt 1 + 3 + 5 + 7. Be dem beskrive mønsteret før de kjører koden. Hva tror de summen av de ti første oddetallene blir?
Kjør eksemplet i Python 3
Koden krever ingen ekstra biblioteker. Den kan kjøres i et Python 3-miljø skolen allerede bruker.
sum_oddetall = 0
for n in range(1, 11):
oddetall = 2 * n - 1
sum_oddetall = sum_oddetall + oddetall
print(n, oddetall, sum_oddetall)
Hver linje viser nummeret på oddetallet, selve oddetallet og summen så langt. De første fire linjene og den siste linjen blir:
1 1 1
2 3 4
3 5 9
4 7 16
...
10 19 100
Hva gjør koden?
Variabelen sum_oddetall starter på null. Løkken går gjennom heltallene fra 1 til og med 10. I Python stopper range(1, 11) før 11. Uttrykket 2 * n - 1 gir oddetallene 1, 3, 5 og så videre.
For hvert steg legges det nye oddetallet til summen. Det er derfor viktig at sum_oddetall = 0 står før løkken. Hvis den flyttes inn i løkken, nullstilles summen på hvert steg.
Spørsmål til elevene
- Hvorfor må den siste grensen i
rangevære 11 for å få med ti oddetall? - Hvilken sammenheng ser du mellom den første og den siste kolonnen?
- Endre programmet slik at det summerer de 20 første oddetallene. Lag en hypotese før du kjører.
- Flytt nullstillingen inn i løkken. Forklar hvorfor resultatet endrer seg, og rett deretter koden.
Fra et mønster til en forklaring
Summene blir kvadrattall: 1, 4, 9, 16 og så videre. Summen av de n første oddetallene er n².
Tegn kvadrater av prikker. For å bygge et kvadrat med side n videre til et kvadrat med side n + 1, trengs en ny kant med 2n + 1 prikker. Det er nettopp det neste oddetallet. Tegningen forklarer hvorfor mønsteret fortsetter.
At programmet gir riktig svar for mange tall, er støtte for en hypotese. Tegningen eller et matematisk argument forklarer hvorfor sammenhengen gjelder generelt.
Vil du arbeide videre med programmering i matematikk?
Kaares kokebok for ungdomsskolen og Vg1 og Kaares kokebok for videregående gir et strukturert løp med programmering i matematikk. Denne nettoppgaven er et selvstendig eksempel, ikke et utdrag fra bøkene.
For lærere som ønsker veiledning i gjennomføringen, tilbyr forlaget også kurs i programmering og fagdidaktikk.