Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Fibonacci-tallene f_i er  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 (mm11:ss05)

Del 1 (mm5:ss33)Del 2 (mm5:ss)32)
Widget Connector
urlhttps://www.youtube.com/watch?v=z_RYr8ZqjMY
Widget Connector
urlhttps://www.youtube.com/watch?v=0wnaUfQaHR0
  
Oppgaveintroduksjon, og problemoppdeling.løsning uten persistent minne.Løsning som bruker persistente variablerHvordan generere en tilfeldig kupong.

 

Løsningsforslag

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...
Code Block
titlefibonacci.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