1. Che cos'è la Ricorsione?
La ricorsione è una tecnica di programmazione e progettazione algoritmica in cui una funzione (o procedura) risolve un problema richiamando se stessa su istanze più piccole dello stesso problema. Molti problemi matematici e strutturali (come alberi, percorsi e fattoriali) trovano una rappresentazione naturale ed elegantemente compatta attraverso l'approccio ricorsivo.
2. I Due Componenti Essenziali
Affinché una funzione ricorsiva sia valida e non incorra in un errore di stack overflow (esaurimento della memoria di stack), deve obbligatoriamente possedere due elementi strutturali:
- Il Caso Base (Base Case): La condizione di terminazione che stabilisce quando la funzione deve smettere di richiamare se stessa, restituendo un valore diretto senza ulteriori suddivisioni.
- Il Passo Ricorsivo (Recursive Step): L'operazione in cui la funzione richiama se stessa passando parametri modificati che si avvicinano progressivamente al caso base.
Definizione ricorsiva di $n!$:
$$n! = \begin{cases} 1 & \text{se } n = 0 \text{ (Caso Base)} \\ n \times (n-1)! & \text{se } n > 0
\text{ (Passo Ricorsivo)} \end{cases}$$
3. Simulatore Interattivo: Stack Trace Ricorsivo
Seleziona un algoritmo ricorsivo per visualizzare in tempo reale la pila delle chiamate (Call Stack) e la successiva fase di risalita dei risultati.