Skillnad mellan versioner av "1.10 Rekursion"

Från Mathonline
Hoppa till: navigering, sök
m
m
Rad 49: Rad 49:
  
  
<big><big>Mönster för bildningen av Fibonaccis talföljd, kort <i>Fibonaccitalen</i>:</big></big>
+
<big><big>Mönster för bildningen av Fibonaccis talföljd, kallad kort <b><span style="color:red">Fibonaccitalen</span></b>:</big></big>
  
 
<div class="ovnE">
 
<div class="ovnE">

Versionen från 12 december 2020 kl. 20.45

        <<  Lektion 16          Genomgång          Övningar      


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 - en upprepning av ett känt förlopp, men under nya förutsättningar, med nya parametrar.


Rekursion är ett koncept som används i problemlösning genom successiv upprepning.


Exempel på en rekursiv algoritm

Algoritmen Intervallhalvering

Optimal strategi för att med så få försök som möjligt gissa rätt i Gissa tal-spelet.

Algor IntervHalv.jpg

Körexempel på Gissa tal-spelet där algoritmen Intervallhalvering använts:

Gissa tal Korex.jpg


Fibonacciproblemet och Fibonaccitalen

Kaniners fortplantning

Fibonacciproblemet.jpg


Följer man Fibonaccis instruktioner för kaniners fortplantning får man följande siffror:

Fibonaccitalen

Fibonaccitalen.jpg


Mönster för bildningen av Fibonaccis talföljd, kallad kort Fibonaccitalen:

Summan av av två på varandra följande fibonaccital ger nästa fibonaccital.


Fibonaccis rekursionsformel

FibonacciRekFormel.jpg


Fibonaccis rekursionsformel kan direkt tas över till följande pythonprogram:


Programmet Fibonacci

Fibonaccis rekursionsformel kodas i Python som en rekursiv funktion fib().

En funktion kallas för rekursiv om den anropar sig själv i sin definition.


FibonacciProgr.jpg


Funktionen fib() anropar sig själv två gånger i sin definition på rad 9: rekursiva anrop!


OBS! Anropet på rad 14 är ett vanligt funktionsanrop i huvudprogrammet.


Körresultat

FibonacciKorEx.jpg


Läs om rekursion i kursboken på sid 98-100.


 










Copyright © 2020 TechPages AB. All Rights Reserved.