Jak Začít?

Máš v počítači zápisky z přednášek
nebo jiné materiály ze školy?

Nahraj je na studentino.cz a získej
4 Kč za každý materiál
a 50 Kč za registraci!




02_rekurze

PDF
Stáhnout kompletní materiál zdarma (851.81 kB)

Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.

Matrjoška

Matrjoška

Matrjoška

Matrjoška

Fraktály

• Sobě-podobný obrazec
• Opticky složitý tvar
• Generování 

jednoduchými pravidly

• Mraky, sněhové vločky, 

řeky, cévy

Rekurze u funkcí

• Znamená to, že pro výpočet funkce je využita tatáž 

funkce.

• Funkce f1 je volána zatímco jedno z předchozích volání 

f1 ještě nebylo ukončeno návratem.

• Druhy

• přímá rekurze - volá se přímo

• nepřímá rekurze  - volá se zprostředkovaně přes jinou funkci

• lineární rekurze – funkce volá sama sebe jen jednou. 

• Faktoriál

• Hledání pozice dané hodnoty v setříděném poli.

• stromová rekurze – funkce volá sama sebe několikrát

• třídící algoritmy:

Druhy rekurzí

• Tail recursion - rekurze je poslední člen volání 

-> return f()

• Strukturální rekurze - volání funkce přes jinou funkci, 

nebo v jiném místě, než samostatně na konci

• Backtracking - zpětné vyčíslování rekurze 

(obecně funkce)

• Mutual (indirect) recursion - dva objekty, závisí na sobě

• funkce volající se navzájem

• objekty ukazující na sebe navzájem

• např. binární strom se skládá z uzlu a dvou stromů

• Corecursion - duální k rekurzi, od jednoduchého ke 

složitému. 

Obecný zápis rekurze

vstup x

test konečné podmínky,

pokud je splněna, ukonči funkci a 

vrať se (do předchozí úrovně)

výpočet před rekurentním voláním

(pro jednotlivá volání)

rekurentní volání s upraveným x

(jedno, nebo v několika větvích)

test a zpracování návratové hodnoty
výpočet po rekurentním volání

(jednom či více)

návrat do předchozí úrovně

Faktoriál

• použití například ve statistice (pravděpodobnost, 

rozložení, …)

• platí

• n! = n.(n-1)!

n > 0

• n! = 1

n = 0

• algoritmus nerekurzivní:

vstup x

pokud (x == 1)

výsledek = 1

jinak

výsledek = 1

pro n = 1 až x; krok 1

výsledek = n * výsledek

Faktoriál

• n! = n. (n-1)!   - princip rekurze, v popisu (definici) 

Témata, do kterých materiál patří