Python Program pro nalezení faktoriálu čísla

⚡ Chytré shrnutí

Faktoriál čísla v Python je součin všech kladných celých čísel až do tohoto čísla. Python vypočítává ho pomocí smyčky for, kontroly if-else, rekurze nebo vestavěné funkce math.factorial().

  • 🔘 Pro smyčku: Iterujte od 1 do n a vynásobte probíhající součin, abyste sestavili faktoriál.
  • ☑️ Kontrola pokud/jinak: Chraňte se před záporným vstupem, který vrátí chybu, protože faktoriály potřebují nezáporná celá čísla.
  • (Tj. Rekurze: Funkce volá sama sebe s n-1, dokud nedosáhne základního případu 0.
  • 🧪 matematika.faktoriál(): Importujte matematické operace a zavolejte jednu vestavěnou funkci pro rychlý a otestovaný výsledek.
  • 🛠️ Okrajové případy: Faktoriál 0 se rovná 1 a Python nativně zpracovává velmi rozsáhlé výsledky.
  • 🤖 Umělá inteligence a datová věda: Pravděpodobnost, kombinatorika a knihovny jako SciPy používají faktoriály na polích.

Python Program pro nalezení faktoriálu čísla

Níže uvedené části ukazují čtyři způsoby výpočtu faktoriálu v Python — cyklus for, verze s funkcí if-else, rekurze a math.factorial() — plus základní algoritmus a aplikace.

Faktoriál čísla pomocí smyčky

Vezměme si příklad z Python kód, který bere jako vstup kladné celé číslo pro určení faktoriálu kladných celých čísel. V následujícím kódu smyčka začíná jedničkou a poté se násobí každým číslem, které předchází skutečnému číslu, jehož faktoriál má být určen.

Následující Python Kód ilustruje faktoriální funkci pomocí smyčky.

Python kód:

print ("Input a number")
factorialIP = int (input ())
ffactor23 = 1
for j in range (1, factorialIP+1):
   ffactor23 = ffactor23 * j
print ("The factorial of the number is “, ffactor23)

Výstup:

Input a number
4
The factorial of the number is 24

Výše Python Program přijímá pouze kladná čísla a neprovádí kontrolu záporných čísel. V tomto programu je faktor 1, když je j rovno 1. Když je j rovno 2, faktor se vynásobí 2 a program bude provádět akci, dokud j nedosáhne hodnoty 4, tedy 24.

Faktoriál čísla pomocí příkazu IF…else

Následující Python Kód ilustruje faktoriálovou funkci pomocí funkce. Na rozdíl od verze se smyčkou tento program před výpočtem faktoriálu také kontroluje záporná čísla.

V předchozím Python V kódu nebyla provedena kontrola záporných čísel, což způsobilo, že faktoriální funkce byla neúplná a náchylná k zobrazení chybové zprávy, pokud jsou jako vstup zadána záporná čísla.

V daném kódu smyčka začíná jedničkou a násobí se každým předchozím číslem a funkce také ověřuje vstup pro záporná čísla.

Python kód:

print("Enter a number for the purpose of determining factorial")
factorialIP = int(input())
def factorial(factorialIP):
   if factorialIP < 0:
     print ('Factorial does not exist')
     factor=0
     return factor
   elif factorialIP == 0:
     factor=1
     return factor
     print(factor)
   else:
     factor = 1
     for j in range (1, factorialIP+1):
       factor = factor * j
     return factor
  print ("The factorial of the number is ", factorial(factorialIP))

Výstup:

1) Enter a number to determine factorial
   -4
   Factorial does not exist
   The factorial of the number is 0

2) Enter a number to determine factorial
   4
   Factorial does not exist
   The factorial of the number is 24

Toto Python Program přijímá kladná čísla a pomocí příkazů if a else kontroluje záporná čísla, přičemž při zadané hodnotě 4 správně vrací 24.

Faktoriál čísla pomocí rekurze

Následující Python Kód ilustruje faktoriálovou funkci pomocí rekurze. V tomto příkladu rekurzivní funkce, která přijímá jako vstup kladné celé číslo, určuje faktoriálové číslo.

Python kód:

print("Enter a number for the purpose of determining factorial")
def factorial(num2):
  if num2 < 0:
    return 'Factorial does not exist'
  elif num2 == 0:
     return 1
  else:
     return num2 * factorial(num2-1)
number1 = int(input())
print("The factorial of the number is",factorial(number1))

Výstup:

Enter a number for the purpose of determining factorial
4
The factorial of the number is 24

Rekurzi lze vysvětlit jako koncept, ve kterém funkce vyvolaná v Python Modul se může volat sám znovu a znovu. Běží, dokud Python podmínka přítomná v modulu je splněna, přičemž volaná funkce je předávána s hodnotou.

Ve výše uvedeném Python V programu se funkce def factorial rekurzivně volá, dokud číslo nedosáhne nuly. Jakmile číslo dosáhne nuly, inicializuje ho na 1, čímž rekurze ukončí.

Faktoriál čísla pomocí math.factorial()

Následující Python Kód ilustruje funkci faktoriálu pomocí math.factorial(), kterou lze použít importem modulu math.

Tato funkce nepřijímá záporná celá čísla a při zadání čísel s desetinnou čárkou vyvolá chybu hodnoty.

Python kód:

print("Enter a number for computing factorial")
import math
number1 = int(input())
print("The factorial is as computed comes out to be ")
print(math.factorial(number1))

Výstup:

Enter a number for computing factorial
4
The factorial, as computed, comes out to be 24

Algoritmus pro faktoriální program v Python

Vezměme si příklad, který ilustruje koncept faktoriálu.

Pro určení faktoriálu 5 postupujte takto:

5! = 5 x (5-1) x (5-2) x (5-3) x (5-4)
5! =120

Tady, 5! je vyjádřen jako 120.

Následující diagram pomáhá pochopit algoritmus výpočtu faktoriálu a v tomto případě si vezměme příklad faktoriálu 4!

Algoritmus pro faktoriální program

Algoritmus s obrázkovým příkladem faktoriálu 4!

Aplikace faktoriálu v Python

Faktoriál čísla má širokou úroveň aplikací v matematice. Zde jsou důležité aplikace Python:

  • Python pomáhá při výpočtech, následovaný tiskem faktoriálu v rychlejším a efektivnějším provedení než jiné dostupné programovací jazyky.
  • Jedno Python kód je snadno srozumitelný a lze jej replikovat napříč různými platformami a faktoriál Python Program lze začlenit do několika úkolů zaměřených na tvorbu matematických modelů.

Nejčastější dotazy

Faktoriál nezáporného celého čísla n, zapsaný n!, je součin všech kladných celých čísel od 1 do n. Například 5! se rovná 5 × 4 × 3 × 2 × 1 = 120.

Faktoriál 0 je podle definice roven 1. Každá metoda – smyčka, rekurze nebo math.factorial() – vrací 1 pro vstup 0 a tento základní případ také zastavuje rekurzivní volání.

Ano. Python Celá čísla mají neomezenou přesnost, takže math.factorial(100) vrací 158místný výsledek bez přetečení. S velikostí vstupu roste pouze paměť a doba běhu.

A pro smyčku je obvykle preferován. Oba běží v čase O(n), ale smyčka používá konstantní paměť, zatímco rekurze přidává zásobník volání, který může zasáhnout Pythonrekurzní limit `s.

Každá standardní metoda potřebuje n−1 násobení, takže časová složitost je O(n). Iterační smyčka udržuje prostor O(1), zatímco rekurze používá pro svůj zásobník volání prostor O(n).

Hluboká rekurze může překročit PythonVýchozí limit funkce `s je blízký 1000 voláním. Pro velké vstupy použijte iterativní smyčku for nebo math.factorial() nebo zvyšte limit pomocí sys.setrecursionlimit().

Ano. Faktoriály se objevují v kombinatorice a rozdělení pravděpodobnosti, jako je Poissonovo a binomické rozdělení, které jsou základem mnoha modelů strojového učení. Knihovny datové vědy také nabízejí vektorizované faktoriálové pomocníky pro pole.

Ano. GitHub Copilot a podobní AI asistenti generují smyčky, rekurzivní verze a verze math.factorial() z krátkého promptu. Vždy si projděte návrh pro ochranu záporných čísel a základní případ 0!.

Shrňte tento příspěvek takto: