Non molte persone lo sanno, ma Python offre una funzione diretta in grado di calcolare il fattoriale di un numero senza scrivere l'intero codice per il calcolo fattoriale.
Metodo ingenuo per il calcolo fattoriale
Python3
# Python code to demonstrate naive method> # to compute factorial> n> => 23> fact> => 1> for> i> in> range> (> 1> , n> +> 1> ):> > fact> => fact> *> i> print> (> 'The factorial of 23 is : '> , end> => '')> print> (fact)> |
>
>Produzione
The factorial of 23 is : 25852016738884976640000>
Complessità temporale: SU)
Spazio ausiliario: O(1)
Utilizzando math.factorial()
Questo metodo è definito in matematica modulo di Python. Poiché ha un'implementazione interna di tipo C, è veloce.
rinominare nella directory Linux
math.factorial(x) Parameters : x : The number whose factorial has to be computed. Return value : Returns the factorial of desired number. Exceptions : Raises Value error if number is negative or non-integral.>
Python3
# Python code to demonstrate math.factorial()> import> math> print> (> 'The factorial of 23 is : '> , end> => '')> print> (math.factorial(> 23> ))> |
>
>Produzione
The factorial of 23 is : 25852016738884976640000>
Complessità temporale: SU)
Spazio ausiliario: O(1)
Eccezioni in math.factorial()
- Se il numero indicato è negativo:
Python3
# Eccezioni (numero non intero)
importare la matematica
print(Il fattoriale di 5.6 è: , end=)
# solleva un'eccezione
print(math.fattoriale(5.6))
>
>
Produzione:
Traceback (most recent call last): File '/home/f29a45b132fac802d76b5817dfaeb137.py', line 9, in print (math.factorial(-5)) ValueError: factorial() not defined for negative values>
- Se il numero indicato è un valore non integrale:
Python3
>
>
Produzione:
Traceback (most recent call last): File '/home/3987966b8ca9cbde2904ad47dfdec124.py', line 9, in print (math.factorial(5.6)) ValueError: factorial() only accepts integral values>