Fork me on GitHub

Fibonacciho posloupnost

Fibonacciho posloupnost je dána předpisem:

$$ F(n)= \left\{ \begin{matrix} 0\,,\qquad\qquad\qquad\quad\,\ \ \,&&\mbox{pro }n=0\,;\ \ \\ 1,\qquad\qquad\qquad\qquad\,&&\mbox{pro }n=1;\ \ \,\\ F(n-1)+F(n-2)&&\mbox{pro }n>1 \end{matrix} \right. $$

Jednoduše řečeno: každý další člen posloupnosti je součtem předchozích dvou členů.

1. Program

Vytvořte program, který na obrazovku vytiskne prvních N členů Fibonacciho posloupnosti.

Příklad komunikace programu:

Zadej počet členů: 9
>>> 0, 1, 1, 2, 3, 5, 8, 13, 21

2. Funkce

Svůj původní program předělejte: vytvořte funkci, která bude vracet n-tý člen fibonacciho posloupnosti.

def fib(n):
    if n = 0:
        return 0
    elif n ...
    ...
 ...

print(fib(5))

3. Rekurze

Opět vytvořte funkci, která vrací n-tý člen fibonacciho posloupnosti, ale tentokrát s využitím rekurze.

def fibR(n):
    ...
    return fibR(n-2) + fibR(n-1)
    ...

Porovnejte rychlosti výpočtu:

print(fib(36))
print(fibR(36))

4. Generátor a iterátor

Na závěr si pohrajte s generátory a iterátory a vytvořte si svůj vlastní generátor a iterátor pro fibonacciho posloupnost. (Můžete si také připomenout jak vypadá generátorová notace.)

Kategorie
TagCloud
#rekurze #OOP #začátečník #python #datové typy #hra #slovník #mírně pokročilý #středně pokročilý #podmínky a cykly #struktury a algoritmy #vstup/výstup #funkce #TkInter
Social