Python-Algorithmen

Fibonacci mit Rekursion und Memoization

Memoization speichert bereits berechnete Funktionswerte in einem Cache.

Was ist Fibonacci mit Rekursion und Memoization?

Memoization speichert bereits berechnete Funktionswerte in einem Cache.

Berechne Fibonacci-Zahlen rekursiv, ohne Ergebnisse mehrfach zu berechnen.

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
from functools import cache

@cache
def fibonacci(number):
    if number < 2:
        return number
    return fibonacci(number - 1) + fibonacci(number - 2)

print(fibonacci(10))

Erwartete Ausgabe

55

So funktioniert es

Der Cache reduziert die exponentielle naive Rekursion auf O(n) Zeit, benötigt jedoch O(n) zusätzlichen Speicher.

Ä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 →