Rekursion
<< Agenda | Genomgång Primtal | Genomgång Rekursion | Dagens övningar | Nästa lektion >> |
Vad är rekursion?
Ordet rekursion kommer från det latinska recurrere som betyder att köra igen. Dvs:
Man återvänder till något som man redan gjort en gång och upprepar ett känt förlopp,
kanske under andra förutsättningar.
Rekursion är ett koncept som används i problemlösning genom successiv upprepning.
Hittills har vi realiserat upprepning i programmering med loopar. Rekursion är ett alternativ till loopar.
Exempel på en rekursiv algoritm
Algoritmen Primtalsfaktorisering
Strategi för att faktorisera ett givet tal, implementerad i den rekursiva funktionen faktorisera().
Rekursion används här som ett koncept för problemlösning, t.ex. i exemplet ovan:
Hur gör jag för att dela upp ett givet tal i sina primfaktorer? Jag upprepar stegen 1-3 i algoritmen ovan.
Bara att jag gör det varje gång med ett annat startvärde: med n/k istället för med n, där k = en primfaktor.
I matematiken realiseras konceptet med s.k. rekursionsformler, se t.ex. Fibonaccis rekursionsformel.
Annat exempel: Fibonacci
Kaniners fortplantning
Följer man Fibonaccis instruktioner för kaniners fortplantning får man följande siffror:
Fibonaccitalen
Mönster för bildningen av Fibonaccis talföljd, även kallad Fibonaccitalen: Summan av två på varandra följande |
\( \qquad\qquad\qquad \) | ![]() |
Fibonaccis rekursionsformel
Mer utförligt om om Fibonacciproblemet kan du läsa här.
Fibonaccis rekursionsformel kan direkt tas över till följande pythonprogram:
Programmet Fibonacci
I Python kan Fibonaccis rekursionsformel kodas som en rekursiv funktion fib().
En funktion kallas för rekursiv om den anropar sig själv i sin egen definition.
Funktionen fib() anropar sig själv två gånger i sin definition på rad 9: rekursiva anrop!
Anropet på rad 14 är ett vanligt (inte rekursivt) funktionsanrop i huvudprogrammet.
Körresultat
Fortsätt med Dagens övningar.
Copyright © 2023 TechPages AB. All Rights Reserved.