Rekurze
Rekurze je způsob, jak specifikovat proces prostředky k sobě. Více přesně (a rozptýlit vzhled circularity v definici), “komplikované” příklady procesu jsou definovány v podmínkách “jednodušších” příkladů a “nejjednodušší” příklady jsou dávány výslovně.
Matematický lingvista Noam Chomsky podal důkaz to neomezené rozšíření jazyka takový jak Angličtina je možná jen rekurzivním zařízením vět prostoupení ve větách. Tak, talky malá dívka může říkat, “Dorothy, kdo se setkal se zlou čarodějnicí západu v Munchkin zemi kde její zlá čarodějnická sestra byla zabita, likvidoval ji s kbelíkem vody.” jasně, dvě jednoduché věty -- “Dorothy se setkal se zlou čarodějnicí západu v Munchkin zemi”, a “její sestra byla zabita v Munchkin zemi” -- moci být zasazený ve třetí větě, “Dorothy likvidoval ji s kbelíkem vody”, získat velmi talky větu.
1984 laureáta Nobelovy ceny v medicíně a fyziologii, Niels K. Jerne, používal Chomsky transformational-generativní gramatika model vysvětlit lidský imunitní systém, vyrovnat “součásti generativní gramatiky... s různými rysy struktur bílkoviny”. Titul Jerne je Stockholm Nobelova přednáška byla “generativní gramatika imunitního systému”.
Tady je jiný, možná jednodušší způsob, jak rozumět rekurzivních postupů:
- My jsme hotoví přesto? Jestliže tak, vrátit výsledky. Bez takový podmínka ukončení rekurze by pokračovala navždy.
- Jestliže ne, zjednodušit problém, řešit ty jednodušší problém (s), a sestavit výsledky do řešení pro originální problém. Pak vraťte to řešení.
Nebo možná přesnější je sledování způsobené Andrewem Plotkinem - “jestliže vy už znáte co rekurze je, jen pamatovat si odpověď. Jinak, najít někoho kdo stojí blíže k Douglas Hofstadter než vy jste; pak žádat o něj nebo ji jaká rekurze je.”
Příklady matematických objektů často vymezily rekurzívně být funkce a soubory.
Kanonický příklad rekurzívně definovaného souboru je přirozená čísla:
- 0 je v N
- jestliže n je v N, pak n+ 1 je v N
- Přirozená čísla je nejmenší soubor uspokojující předchozí dvě vlastnosti.
- 0, 1 být v N;
- jestliže n a n+ 1 být v N, pak n+ 2 je v N;
- N je nejmenší soubor uspokojující předchozí dvě vlastnosti.
Příklad: Soubor opravdových dostupných problémů
Další zajímavý příklad je soubor všech pravdivý “dostupné” problémy v axiomatickém systému.
- jestliže problém je axióm, to je pravdivý dostupný problém.
- jestliže problém může být získán od opravdových dostupných problémů prostředky k odvozovacím pravidlům, to je pravdivý dostupný problém.
- Soubor opravdových dostupných problémů nejmenší soubor dostupných problémů splní tyto podmínky.
(To potřeby být poukázaly na to určovat zda jistý objekt je v rekurzívně definovaný soubor není algoritmická úloha.) Formální definice
(Vložit definici rekurzívně definovaného souboru tady)
Funguje jehož domény mohou být rekurzívně definované moci být dané rekurzivní definice vzorovaný po rekurzivní definici jejich domény.
Kanonický příklad rekurzívně definované funkce je následující definice faktoriálové funkce f(n):
- f(0) = 1
- f(n) = n · f(n- 1) pro nějaké přirozené číslo n > 0
f(3) = 3 · f(3-1) = 3 · f(2) = 3 · 2 · f(2-1) = 3 · 2 · f(1) = 3 · 2 · 1 · f(1-1) = 3 · 2 · 1 · f(0) = 3 · 2 · 1 · 1 = 6Další příklad je definice Fibonacci čísel.
Obyčejná metoda zjednodušení má rozdělit problém na subproblems stejného typu. Jak technika programování je volána rozdělit se a podmanit si a je klíč k návrhu mnoha důležitých algoritmů jak studně jako bytí základní část dynamického programování.
Doslova všechny programovací jazyky v použití dnes dovolit přímou specifikaci rekurzivních funkcí a procedur. Když takový funkce je volána, počítač drží dráhu různých příkladů funkce tím, že používá hromadu. Naopak, každá rekurzivní funkce může být transformována do opakovací funkce tím, že používá hromadu.
Nějaká funkce, která může být ohodnocena počítačem může být vyjádřena v podmínkách rekurzivních funkcí, bez použití iterace, a naopak.
Opravdu, některé jazyky určené pro logické programování a funkční programování poskytují rekurzi jako jediné prostředky k opakování přímo dostupný programátorovi. Takové jazyky obecně dělají rekurzi ocasu jak účinný jako iterace, nechávat programátory vyjadřovat jiné struktury opakování (takový jak Schéma je mapa a pro) v podmínkách rekurze.
Rekurze je hluboce zasazená v teorii počítání, s teoretickou rovnocenností rekurzivních funkcí a Turing stroji u založení myšlenek na univerzálnost moderního počítače.
John Mccarthy' s fungovat, Mccarthy je 91 je jiný příklad rekurzivní funkce.
V teorii množin, toto teorém garantuje, že rekurzívně určené funkce existují. Daný soubor X, element X a funkce f : X -> X, teorém říká, že to tam je jedinečná funkce F : N -> X (kde N označuje soubor přirozených čísel) takový to
- F(0) =
- F(n+ 1) = f(F(n))
Vzít dvě funkce f a g domény N a codomain takový to:
- f(0) =
- g(0) =
- f(n+ 1) = F(f(n))
- g(n+ 1) = F(g(n))
- i. mít se rovnat doménám/codomains;
- ii. mít stejný grafický.
- i. Hotový!
- ii. Matematické přerušení: pro všechny n v N, f(n) = g(n)? (my budeme volat tuto podmínku, říkat, Eq (n)):
- 1.: Eq (0) iff f(0) = g(0) iff = a. hotový!
- 2.: nechaný n být element N. Předpokládat ten Eq (n) držení, my chceme ukazovat ten Eq (n+ 1) držení také, který je snadný protože: f(n+ 1) = F(f(n)) = F(g(n)) = g(n+ 1). Hotový!
Důkaz existence
My vymezíme F na nule, pak jeden a tak dále. Vymezit F(0) = ;
Nyní předpokládat, že F byl definován na všech číslech méně než se rovnat k n my vymezíme F(N+ 1) = f( F(N)). Si všimnout toho protože F(N) byl definován hypotézou a to f je funkce X k X tak strana pravé ruky je opravdu člen X a tak toto správná definice.
Jinak, a informally, F(N) je výsledek nanášení f k N časy.
Nějaké obyčejné opakování vztahy jsou:
- Faktoriál -- n! = n · (n- 1) ·... · 1
- Fibonacci čísla -- f(n) = f(n- 1) + f(n- 2)
- Katalánská čísla -- C(2n, n) / (n+ 1)
- Počítačové složité úroky
- věž Hanoi
- Ackermann funkce
- Populační růst
Viz též
- Rekurze
- Self-odkaz
- Divná smyčka
- Rekurzivní funkce
- Primitivní rekurzivní funkce
- Rekurzivní zkratka
- Decidable jazyk
- Decidable soubor
Další četby a odkazy
- Richard Johnsonbaugh, Jednotlivá matematika 5. vydání. 1990 Macmillan