-
Notifications
You must be signed in to change notification settings - Fork 0
print_rij_van_Fibonacci
Hier vind je verschillende uitwerkingen van opdracht 1.2.23 van EMS10.
De rij van Fibonacci is een bekende rij getallen waarbij elk getal uit de rij gelijk is aan de som van zijn twee voorgangers.
De eerste tien getallen uit de rij van Fibonacci zijn:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34.
Schrijf een functie genaamd print_rij_van_Fibonacci met een parameter genaamd n die de eerste n getallen uit de rij van Fibonacci afdrukt.
Je mag er daarbij van uitgaan dat n ≥ 2 is.
Schrijf ook een testprogramma waarin de functie aangeroepen wordt met verschillende waarden als argument (bijvoorbeeld 2, 10 en 100).
Omdat gegeven is dat n ≥ 2 is, kun je de eerste twee getallen uit de rij van Fibonacci 0 en 1 met een eenvoudig print statement afdrukken.
Om het volgende getal uit de rij te berekenen, moet je weten wat het vorige getal is en wat het getal voor het vorige getal is.
In het onderstaande programma houden we deze getallen bij in de variabelen genoemd vorige en voor_vorige.
Het volgende getal uit de rij dat we willen berekenen is het derde getal.
Want de eerste twee getallen, 0 en 1, hebben we al geprint.
De variabele vorige moet dus geïnitialiseerd worden met 1 en de variabele voor_vorige moet geïnitialiseerd worden met 0.
We gebruiken een for-statement om de getallen uit de rij één voor één te berekenen.
We moeten in totaal n getallen afdrukken.
Omdat we de eerste twee getallen al geprint hebben moeten we nog n - 2 getallen berekenen en afdrukken.
De for-loop moet dus n - 2 keer doorlopen worden.
In de loop kunnen we het huidige getal uit de rij bereken met de formule getal = voor_vorige + vorige.
Dit getal kunnen we vervolgens printen.
Om er voor te zorgen dat de volgende keer dat we de voorgaande formule uitvoeren het volgende getal uit de rij wordt berekend, moeten we daarna de variabele voor_vorige gelijk maken aan vorige en de variabele vorige gelijk maken aan getal.
def print_rij_van_Fibonacci(n):
voor_vorige = 0
vorige = 1
print(0)
print(1)
for i in range(n - 2):
getal = voor_vorige + vorige
print(getal)
voor_vorige = vorige
vorige = getalDe volgorde van de twee laatste regels in dit programma kan niet verwisseld worden.
We moeten de waarde van de variabele vorige namelijk eerst opslaan in de variabele voor_vorige voordat we de variabele vorige een nieuwe waarde geven.
Deze functie kan gebruikt worden met het volgende testprogramma:
print('print_rij_van_Fibonacci(2):')
print_rij_van_Fibonacci(2)
print('print_rij_van_Fibonacci(10):')
print_rij_van_Fibonacci(10)
print('print_rij_van_Fibonacci(100):')
print_rij_van_Fibonacci(100)