NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.
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.