Fibonacci


hejsan
skulle jag kunna få lite tips på övning 4.7?
Hej Biorr God morgon!
Jag har läs programmering C och C++ en gång i tiden och jag kom ihåg att Fibonacci talen och rekursion var en stor del av kursen. Väldigt klurig till att börja med. Men när man förstår går det lättare särskilt när man programmerar.
Vi gör det ett försökt så här:
Om man tittar i början av övningen det är källkoden (i språket C) som uppgiften syftar på.
När programmet körs ser vi i koden att:
Om n == 0 körs return 0; (basfallet som uppgiften frågar efter).
Om n == 1 körs return 1; (Basfallet ).
Annars delas anropet upp i två nya grenar: fibo(n-1) + fibo(n-2).
Den rekursiva formeln för följden ger = 1, = 0
Följden beskriver hur många gånger funktionen hamnar i basfallet n == 0 (vilket ger . Genom att titta noga på källkoden får vi följande rekursiva definition: = 1 , = 0.
För att beräkna ett steg delas koden upp i de två föregående stegen, gör att antalet basfallsanrop adderas på samma sätt som i Fibonacciföljden : ==>
Genom att räkna ut värdena steg för steg från till får vi följande tio tal:
om n = 0 körs basfallet direkt 1 gång ; om n=1 andra basfallet körs och plockas fram 0 gånger.
; ; ;
; ; ;
De tio forsta talen är : 1, 0, 1, 1, 2, 3, 5, 8, 13, 21
Det är min lösning utifrån utifrån den givna C-koden för Fibonaccifunktionen. Om någon vill addera ytterligare synpunkter eller kommentera resultatet, måste du även iaktta och ta hänsyn till de kommentarerna.
Lycka till med matte studierna!