Python-Algorithmen

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

Code ausführen →
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.

  1. Teste leere Eingaben, ein Element und doppelte Werte.
  2. Gib den Zustand nach jedem Schritt aus.
  3. Vergleiche Laufzeit und Speicherbedarf mit einem alternativen Verfahren.
In der Python-IDE ausführen →