Fakultät mit Rekursion in Python
Die Fakultät lässt sich als n · (n−1)! mit einem Basisfall für 0 und 1 definieren.
Was ist Fakultät mit Rekursion?
Die Fakultät lässt sich als n · (n−1)! mit einem Basisfall für 0 und 1 definieren.
Berechne n! mit einer rekursiven Funktion.
Wann wird dieser Ansatz verwendet?
- Algorithmen und Datenstrukturen anhand von ausführbarem Code verstehen.
- Die einzelnen Verarbeitungsschritte und Randfälle nachvollziehen.
- Laufzeit und Speicherbedarf verschiedener Lösungswege vergleichen.
Beispielcode
main.py
def factorial(number):
if number < 0:
raise ValueError("Factorial is undefined for negative numbers")
if number <= 1:
return 1
return number * factorial(number - 1)
print(factorial(6))
Erwartete Ausgabe
720
So funktioniert es
Jeder Aufruf reduziert n um eins. Ein korrekter Basisfall verhindert eine endlose Rekursion; Zeit und Rekursionstiefe sind O(n).
Ändere die Werte und führe das Programm im CodeUtility Python Online-Compiler aus, ohne Python lokal zu installieren.
Übungsaufgaben
Verändere Eingaben und Randfälle, bevor du die Lösung mit größeren Datenmengen testest.
- Teste leere Eingaben, ein Element und doppelte Werte.
- Gib den Zustand nach jedem Schritt aus.
- Vergleiche Laufzeit und Speicherbedarf mit einem alternativen Verfahren.