Zarábaj až 6 000 € mesačne! Akreditované rekvalifikačné kurzy od 0 €. Viac informácií.

Diskusia – Faktoriál

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Odpovedá na Patrik Pastor
Ondřej Michálek:1.6.2019 17:15

Podle me je dulezite si uvedomit, co presne rekurze dela. Neni rekurze jako rekurze. Pokud mas algoritmus, ktery provadi Divide et impera - rozdel a panuj, neboli kde si problem rozdelis na dva mensi celky (idealne polovicni) a ty muzes samostatne resit, je rekurze docela dobrou metodou. Proto to u faktorialu nema smysl, zde se problem zmensi pouze o 1. Rekurze ti totiz pomaha dostat se do nejakeho stavu. Samozrejme cokoliv muzes napsat bez rekurze a nekdy to bude lepsi bez ni.

Problem u rekurze je v tom, ze se uklada na zasobnik volani fce atd... Pokud vsak chces rekurzi nahradit iteraci, je mozne, ze ve vysledku ti kvuli praci s jinymi datovymi typy vyjde lepe rekurzivni algoritmus. Rekurze je pomala. A iterace neni o moc rychlejsi :D Pokud ti jde opravdu o optimalizaci kodu, rozhodne bych nejdrive optimalizoval O(). Navic, existuje jeste tzv. tail rekurze, ktera optimalizuje i samotnou rekurzi. Neboli kdyz potrebujes najit nejaky stav, nemusis si pamatovat ty predchozi. No a tam uz se neni o cem bavit, pres iteraci bych to rozhodne nedelal.

V neposledni rade si vezmeme, o jake casove uspore se bavime. Pokud mi neiterativni reseni bude trvat v O notaci stejne dlouho, sahnu po tom, co rychleji a snadneji naprogramuji. A pokud jde o pamet, muzes si u rekurze rict - tahle vetev nikam nevede, odriznu ji - a usetrena pamet se hezky leze na povrch...

Odpovedať
+3
1.6.2019 17:15
Raduj se z bugu. Tedy z toho, ktery jsi uz nasel...
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 1 správy z 21.