Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Čo je Rekurzia v programovaní

V počítačové programovanie , rekurzia nastáva , keď funkcia alebo procedúra - inými slovami , postupnosť inštrukcií pre vykonávanie určitej funkcie - volá sama seba , a to buď priamo , alebo nepriamo ? . Funkcia alebo procedúra zmení hodnota parametra ( ov ) odovzdaný k nemu po prvýkrát sa nazýva , a žiada , aby sa s novou hodnotou ( y ) . Faktoriál

klasický príklad rekurzia zahŕňa výpočtovej faktoriál . Faktoriál je produkt z dané kladné celé číslo násobené všetkých menších celých čísel . Faktoriál 5 je 5 * 4 * 3 * 2 * 1 , faktoriál 4 je 4 * 3 * 2 * 1 , a tak ďalej . Faktoriál každého čísla sa rovná číslo násobenej faktoriál čísla bezprostredne pod ním . Inými slovami , faktoriál ( 5 ) je rovnaká ako 5 * faktoriál ( 4 ) , faktoriál ( 4 ) je rovnaký ako 4 * faktoriál ( 3 ) , a tak ďalej , takže jednoduchá faktoriál funkcie by mohla byť zapísaná ako :

int faktoriál ( int n) { return n * faktoriál (n - 1 ) ; }
Základné Case

problém s touto jednoduchou funkciu , však, je to , že nemá základné veci , alebo stav povedať to , kedy prestať . Ako to stojí , funkcia bude naďalej nazývať , keď n dosiahol nulu a mimo do záporných čísel , vracia nezmyselné faktoriál . V skutočnosti , faktoriál funkcie musí zastaviť , keď n = 1 , takže skutočný faktoriál funkcie , ktorú možno zapísať ako : Autor

int faktoriál ( int n) { if (n == 1 ) { return 1 ; } else { return n * faktoriál (n - 1 ) ; } }

v angličtine , funkcia skúma číslo odovzdaný k nemu ako parameter , a ak je číslo 1 , vráti 1. V opačnom prípade funkcia vracia počet vynásobený faktoriálu z jedného čísla so znamienkom mínus .
Program Stack

Všetky rekurzívne programy musia mať spodnú časť , alebo základné prípad , kedy prevádzka je tak triviálne , že odpoveď môže byť vrátený priamo . Rekurzia funguje pridaním alebo tlačenie a odstraňovanie , alebo praskanie , jednotlivé snímky do a z dátovej štruktúry známej ako programový balík . K dispozícii je iba obmedzené množstvo priestoru na programe zásobníka , takže bez základného prípade , rekurzívne program by jednoducho pokračuje beží , kým zásobník pretečie .
Klady a zápory

Rekurzia je ťažké pochopiť , pretože to nie je intuitívne a môžu sa objaviť na prvý pohľad , zapojiť kruhovou alebo falošnú logiku . Podľa IBM , rekurzia je zriedka používaný programátorov v naliehavých programovacích jazykoch - ktoré neurčujú explicitné sled krokov , ktoré ich vykonávajú - pretože oni veria , že je pomalý a odpady priestor . Avšak, ak sú správne používané , rekurzia je výkonný programovací technika , ktorá môže zefektívniť niektoré programátorské úlohy .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené