IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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: Výpočet faktoriálu v Pythoně

V předchozím kvízu, Online test znalostí Python 2.7, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Alexandr Saveljev:4.8.2023 13:28

V kódu

def faktorial(cislo):
    if cislo > 0:
        return faktorial(cislo - 1) * cislo
    else:
        return 1

část kódu (cislo - 1) co přesně znaměná?
Je to cislo -= 1?

Zkusil jsem: Přečetl jsem faktoriál v Pythonu.

Chci docílit: Pochopeni.

 
Odpovědět
4.8.2023 13:28
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Alexandr Saveljev
DarkCoder:4.8.2023 13:53

Jedná se o funkci pro výpočet faktoriálu používající rekurzi. Rekurze je technika programování, při které funkce volá sama sebe. V případě výpočtu faktoriálu to znamená, že funkce volá sama sebe s menšími hodnotami a postupně se tak přibližuje k výsledku.

Pokud budeš volat funkci s argumentem, kde cislo bude např. 5, tak bude první podmínka splněna a uvnitř funkce dojde k volání té samé funkce s hodnotou o 1 menší, tedy 4. To bude probíhat dokud cislo bude větší než 0. Jakmile bude 0, provede se druhá podmínka která vrátí hodnotu 1. Rekurze se začne odvíjet zpět až k původnímu volání faktorial(n), přičemž nyní postupně násobí výsledky jednotlivých volání až do dosažení výsledku pro původní hodnotu n. Tímto způsobem je vypočítán faktoriál daného čísla.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
4.8.2023 13:53
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Alexandr Saveljev:4.8.2023 14:46

Děkuji!

 
Nahoru Odpovědět
4.8.2023 14:46
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 3 zpráv z 3.