Algoritmi Python

Fibonacci ricorsivo con memoization

La memoization conserva i risultati già calcolati.

Che cos’è Fibonacci ricorsivo con memoization?

La memoization conserva i risultati già calcolati.

Evita di ricalcolare gli stessi termini.

Quando si usa?

  • Comprendere algoritmi e strutture dati.
  • Osservare ogni passaggio e gestire i casi limite.
  • Confrontare tempo di esecuzione e memoria.

Codice di esempio

Esegui codice →
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))

Output previsto

55

Come funziona

La cache riduce il tempo esponenziale ingenuo a O(n), con memoria O(n).

Modifica i valori ed esegui il programma nel compilatore Python online CodeUtility senza installare Python.

Esercizi pratici

Modifica gli input e verifica i casi limite prima di usare dataset più grandi.

  1. Prova input vuoto, un elemento e duplicati.
  2. Stampa lo stato dopo ogni passaggio.
  3. Confronta le prestazioni con un’altra soluzione.
Esegui nell’IDE Python →