More actions
Bez shrnutí editace |
Bez shrnutí editace |
||
Riadok 27: | Riadok 27: | ||
Našťastie, pre tento prípad vieme rekurzívne funkcie vyjadriť analyticky (teda, nerekurzívne) – to znamená že pre dané <math>n</math> vieme vypočítať konkrétnu hodnotu bez toho, aby sme volali funkciu rekurzívne. | Našťastie, pre tento prípad vieme rekurzívne funkcie vyjadriť analyticky (teda, nerekurzívne) – to znamená že pre dané <math>n</math> vieme vypočítať konkrétnu hodnotu bez toho, aby sme volali funkciu rekurzívne. | ||
Pre analýzu funkcie musíme postupovať odzadu | |||
{{Téma|Oblast=Kategória:Algoritmy a výpočtová zložitosť|Poradie=25}} | {{Téma|Oblast=Kategória:Algoritmy a výpočtová zložitosť|Poradie=25}} | ||
[[Kategória:Algoritmy a výpočtová zložitosť]] | [[Kategória:Algoritmy a výpočtová zložitosť]] |
Verzia z 12:24, 24. marec 2025
Vyjadrenie funkcie analyticky (nerekurzívne), určovanie výpočtovej zložitosti v rekurzívnych funkciách.
Určenie konkrétnej hodnoty rekurzívnej funkcie výpočtovej zložitosti
Už vieme určovať výpočtovú zložitosť v metódach, ktoré nie sú rekurzívne. Ale čo ak funkcia volá samú seba? Majme napríklad funkciu definovanú takto:
Funkcia odkazuje na samú seba, pričom vieme že pre je hodnota číslo 3. Toto sa nazýva triviálny prípad – je to bod, v ktorom sa rekurzívne volanie zastaví. Toto bude veľmi dôležité, pretože rekurzívne funkcie sa musia skôr či neskôr zastaviť (nemôžeme ich volať donekonečna).
Aby sme si vedeli lepšie predstaviť ako rekurzívne funkcie fungujú, poďme vypočítať, akú hodnotu bude mať :
Ako vidíme, . Ide iba o postupné nahrádzanie premennej , pričom ak chceme vypočítať určitú hodnotu, musíme v tomto prípade poznať aj všetky predošlé hodnoty. Avšak, čo by sa stalo ak by sme chceli vypočítať ? Ak by sme to počítali manuálne, trvalo by to strašne dlho. Veľmi veľké hodnoty by robili problém aj najrýchlejším počítačom, obzvlášť ak by rekurzívne volania boli komplikovanejšie.
Našťastie, pre tento prípad vieme rekurzívne funkcie vyjadriť analyticky (teda, nerekurzívne) – to znamená že pre dané vieme vypočítať konkrétnu hodnotu bez toho, aby sme volali funkciu rekurzívne.
Pre analýzu funkcie musíme postupovať odzadu