Zadanie 90
Ciąg Fibonacciego definiujemy następujaco: f(1)=1,
f(2)=1, f(k)=f(k-1)+f(k-2).
Napisz algorytm obliczający k-ty element ciągu Fibobnacciego na dwa
sposoby:
Uwaga: W jaki sposób funkcja "zwraca" wartość ? Odp:
funkcja Potega(a,b) x<- 1 for i<- 1 to b do x<- x*a Potega<- x
Zadanie 91
Zdefiniuj następujące funkcje (koniecznie używając rekurencji):
Uwaga: Pamiętaj że rekurencja nie może być "nieskończona"!
Zadanie 92
Zaimplementuj procedury wypisujące wszystkie "obiekty
kombinatoryczne" danego typu (np K-elementowe kombinacje zbioru N-elementowego).
Przy użyciu rekurencji jest to bardzo proste zadanie !. Należy zaimplementować
procedury wypisujące następujące obiekty:
Wskazówka: Jak zaprogramować WariacjeZPowtorzeniami(i)
?
Używamy tablicy Wynik[1..n] do przechowywania pojedynczej wariacji.
W procedurze WariacjeZPowtorzeniami(i),
w pętli "for j<- 1 to N do" wykonujemy:
1) Wynik[i]<- j
2) uruchamiamy rekurencyjnie WariacjeZPowtorzeniami(i+1)
Zasada działania
procedury jest następująca:
zakres tablicy Wynik[1..i-1] zawiera fragment wariacji utworzony przez
poprzednie wywołania procedury;
procedura WariacjeZPowtorzeniami(i) bezpośrednio modyfikuje element
Wynik[i];
rekurencyjne wywołanie WariacjeZPowtorzeniami(i+1) generuje wszystkie możliwe
wariacje w zakresie Wynik[i+1..n];
oczywiście gdy wszystkie elementy tablicy Wynik mają przypisaną wartość to
należy ją wypisać.