Fibonacci-tallene  er definert som følger:

Dette gir oss rekken med tall: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, etc, hvor hvert tall er regnet ut ved å summere de to foregående tallene.

Du skal lage en funksjon for å regne ut Fibonacci-tall nummer n. Du innser at for å regne ut tall nummer n, må du regne ut alle Fibonacci-tallene opp til n-1. Du ønsker derfor å ta vare på de Fibonacci-tallene du regner ut, slik at du kan gjenbruke dem når funksjonen kalles på nytt.

Lag en funksjon som regner ut Fibonacci-tall nummer n, som gjenbruker Fibonacci-tallene som regnes ut mellom forskjellige kall til funksjonen.

Videoforklaring (11:05)

Del 1 (5:33)Del 2 (5:32)
Oppgaveintroduksjon, og løsning uten persistent minne.Løsning som bruker persistente variabler.

 

Løsningsforslag

fibonacci.m
function retur = fibonacci(n)
    persistent fibs;
    if isempty(fibs)
        fibs = [0, 1];
    end
    for i = length(fibs)+1:n
       fibs(i) = fibs(i-1) + fibs(i-2);
    end
    retur = fibs(n);
end 


  • No labels