NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 1 - Faktoriál

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Odpovídá 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...

Odpovědět
1.6.2019 17:15
Raduj se z bugu. Tedy z toho, ktery jsi uz nasel...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 21.