fibb, Chomiczek, Studia, Semestr 2, Matematyka Dyskretna, Matematyka dyskretna


Opole, dn. 31 marca 2004

Laboratorium Algorytmów i Struktur Danych

Temat:

Analiza algorytmu obliczającego wyrazy ciągu Fibonacciego

Autor: Dawid Najgiebauer

Informatyka, sem. II, grupa lab. 11

Prowadzący: dr inż. Jan Sadecki


  1. Temat

Napisać funkcję rekurencyjną obliczania n-tego elementu ciągu Fibonacciego. Obliczyć ilości wywołań rekurencyjnych dla n=5, 10, 15,..., 45. Napisać funkcję nierekurencyjną obliczania n-tego elementu ciągu Fibonacciego. Obliczyć ilości wykonanych podstawień.

  1. Analiza, projektowanie

Celem badania jest sprawdzenie i porównanie metod wyszukiwania n-tego wyrazu dla ciągu Fibonacciego.

Zgodnie z tematem zostaną stworzone dwie funkcje - rekurencyjna i iteracyjna, które będą spełniać to zadanie.

    1. Ciag Fibbonaciego

Ciąg Fibonacciego jest to ciąg liczb, w którym dwiema początkowymi są 0 i 1 (w niektórych założeniach przyjmuje się, że są to dwie jedynki), a kolejne liczby są sumą dwóch poprzednich liczb w ciągu. W przyjętym przypadku pierwszą liczbę uważa się za wyraz zerowy.

Tak więc liczby, wg tych założeń, układają się w następujący ciąg:

0, 1, 1 (0+1), 2 (1+1), 3 (1+2), 5 (2+3), 8, 13, 21, 34, 55, 89 itd...

    1. Implementacja algorytmu - realizacja przez rekurencję

unsigned long fibbrek(int n)

{

wywrek++;

if (n==1) return 1;

if (n==0) return 0;

return fibbrek(n-1)+fibbrek(n-2);

}

    1. Implementacja algorytmu - realizacja w sposób iteracyjny

unsigned long fibbite(int n)

{

unsigned long wm1=1,wm2=0,w=1;

if (n==1) return 1;

if (n==0) return 0;

for(int i=3;i<=n;i++)

{

wm2=wm1;

wm1=w;

w=wm1+wm2;

podst+=3;

}

return w;

}

  1. Wyniki badania

Wynika badania przedstawiono w tabelce:

N

Ilość wywołań dla algorytmu rekurencyjnego

Ilość podstawień dla algorytmu iteracyjnego

5

15

9

10

177

27

15

1 973

42

20

21 891

57

25

242 785

72

30

2 692 537

87

35

29 860 703

102

40

331 160 281

117

45

3 672 623 805

132

  1. Uwagi i wnioski z testowania i uruchamiania

    1. Realizacja w sposób rekurencyjny jest dużo bardziej czasochłonna.

    2. Ilość wywołań funkcji rekurencyjnej rośnie wykładniczo do zadanego numeru wyrazu ciągu.

    3. Ilość podstawień w funkcji iteracyjnej rośnie liniowo wobec zadanej wartości.

4 Dawid Najgiebauer

Wyniki badania 5

Temat 3



Wyszukiwarka

Podobne podstrony:
MiBM, POLITECHNIKA ŚLĄSKA Wydział Mechaniczny-Technologiczny - MiBM POLSL, Semestr 1, Studia semestr
Miernictwo Elektroniczne, Chomiczek, Studia, Semestr 1, Miernictwo 1, Miernictwo
tabelku do kolok A, Studia Informatyka 2011, Semestr 2, Matematyka dyskretna, labolatoria Dmytryszyn
dyskretna2, Studia, PWR, 2 semestr, Matematyka dyskretna
dyskretna-przyklad-zadania-na-pierwsze-kolokwium, Studia, PWR, 2 semestr, Matematyka dyskretna, kolo
dyskretna-egzamin-zaoczne-szablon, Studia, PWR, 2 semestr, Matematyka dyskretna, kolokwium
dyskretna-egzamin-zaoczne, Studia, PWR, 2 semestr, Matematyka dyskretna, kolokwium
DEgz2-2011 rozw, Studia informatyczne, Matematyka, Matematyka Dyskretna, Matematyka Dyskretna, Egzam
ListazadanMD1, 2 Semestr, Matematyka dyskretna, MDzadania
ListazadanMD4, 2 Semestr, Matematyka dyskretna, MDzadania
DEgz3-2010, Studia informatyczne, Matematyka, Matematyka Dyskretna, Matematyka Dyskretna, Egzaminy z
ListazadanMD67, 2 Semestr, Matematyka dyskretna, MDzadania
DEgz1, Studia informatyczne, Matematyka, Matematyka Dyskretna, Matematyka Dyskretna, Egzaminy zadani
pytania na egz md, semestr 2, matematyka dyskretna II
Egz1 - grafy, Studia informatyczne, Matematyka, Matematyka Dyskretna, Matematyka Dyskretna, Egzaminy
pytegzmatdyskr2009wi, 2 Semestr, Matematyka dyskretna, matematyka dyskretna 2009, egzamin pytania i

więcej podobnych podstron