Faktorielle Berechnung in Python
- Berechnen der Fakultät einer Zahl mithilfe der Iteration in Python
- Berechnen der Fakultät einer Zahl mit Rekursion in Python
-
Berechnen der Fakultät einer Zahl mit der Funktion
math.factorial()
in Python
Eine Fakultät einer Zahl ist das Produkt aller positiven ganzen Zahlen, die kleiner oder gleich dieser Zahl sind. Zum Beispiel ist die Fakultät von 5 das Produkt aller Zahlen, die kleiner und gleich 5 sind, d.h. 5 * 4 * 3 * 2 * 1
, was gleich 120 ist. Daher ist die Fakultät der Zahl 5 120.
Lassen Sie uns nun eine Python-Funktion schreiben, um die Fakultät einer Zahl zu berechnen. Es gibt zwei Möglichkeiten, wie wir ein faktorielles Programm in Python schreiben können, zum einen mit Hilfe der Iterationsmethode und zum anderen mit Hilfe der rekursiven Methode.
Berechnen der Fakultät einer Zahl mithilfe der Iteration in Python
Das faktorielle Programm mit der Iterationsmethode ist nichts anderes als die Verwendung von Schleifen in unserem Programm wie die for
-Schleife oder die while
-Schleife. Beim Schreiben eines iterativen Programms für die Fakultät in Python müssen wir drei Bedingungen überprüfen.
- Die gegebene Zahl ist negativ: Wenn die Zahl negativ ist, dann sagen wir einfach, dass wir die Fakultät nicht finden können, weil die Fakultät einer negativen Zahl nicht existiert.
- Gegebene Zahl ist Null: Wenn die Zahl Null ist, dann werden wir einfach
1
ausgeben, weil die Fakultät einer Zahl Null1
ist. - Gegebene Zahl ist positiv: Wenn die Zahl positiv ist, dann werden wir nur ihre Fakultät finden.
def factorial(num):
if num < 0:
print("Factorial of negative num does not exist")
elif num == 0:
return 1
else:
fact = 1
while num > 1:
fact *= num
num -= 1
return fact
num = 5
print("Factorial of", num, "is", factorial(num))
Ausgabe:
Factorial of 5 is 120
Berechnen der Fakultät einer Zahl mit Rekursion in Python
Rekursion ist nichts anderes als der wiederholte Aufruf der gleichen Funktion. Wenn wir die Rekursion verwenden, können wir weniger Codezeilen schreiben, die viel lesbarer sind als der Code, den wir mit der iterativen Methode schreiben werden.
Immer, wenn wir eine Rekursionsfunktion aufrufen, wird ein Rekursionsstapel im Speicher angelegt. Dieser Rekursionsstapel hat etwas, das Programmzähler genannt wird, der festhält, welche Anweisung als nächstes ausgeführt werden soll, nachdem die Rekursionsfunktion ihre Ausführung beendet hat.
def factorial(n):
return 1 if (n == 1 or n == 0) else n * factorial(n - 1)
num = 5
print("Factorial of", num, "is", factorial(num))
Ausgabe:
Factorial of 5 is 120
Berechnen der Fakultät einer Zahl mit der Funktion math.factorial()
in Python
Wollen Sie eine Fakultät-Funktion in nur einer Zeile schreiben? Sieht das für Sie unmöglich aus? Es gibt eine Möglichkeit, eine faktorielle Funktion in nur einer Zeile Code zu schreiben. Dies kann mit Hilfe des math
-Moduls gemacht werden. Innerhalb des Moduls math
gibt es eine Funktion factorial
, um die Fakultät einer Zahl zu berechnen.
Sie müssen diese Funktion aus dem math-Modul importieren, sie in Ihrem Programm aufrufen und die Zahl übergeben, deren Fakultät Sie berechnen möchten. Siehe das folgende Beispiel.
from math import factorial
print("Factorial is", factorial(5))
Ausgabe:
Factorial is 120
Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.
LinkedIn