Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
È un metodo per la risoluzione di problemi, ovvero, è una maniera per progettare algoritmi. Calcola la
soluzione di un’istanza di un problema sfruttando una soluzione per un’istanza “più piccola” dello
stesso problema e poi risolve l’intera istanza tramite lo stesso algoritmo.
FATTORIALE
È un problema di accumulazione:
Quindi n! = 1*2*3*…*(n-2)*(n-1) * n.
(n-1)!
Ovvero il fattoriale di un numero n ≥ 2 è pari ad n * (n-1)!. Es. il fattoriale di 123 è pari a 123*122!
Un algoritmo ricorsivo deve fornire direttamente la soluzione al problema per valori o dimensioni di
input “piccoli”, questi vengono chiamati casi base dell’algoritmo ricorsivo. Ad esempio n = 1
rappresenta il caso base dell’algoritmo.
Quando l’input non corrisponde a un caso base, l’algoritmo “ricorre” ovvero calcola il risultato
sfruttando il risultato ottenuto dal caso base, questo passaggio si chiama “passo ricorsivo”. Es. valori
n >1.
La finitezza di un algoritmo ricorsivo viene raggiunta garantendo che ogni sequenza di esecuzioni
dell’algoritmo arrivi ad un caso base.
FUNZIONI RICORSIVE
Una funzione è ricorsiva se invoca se stessa. La funzione avrà casi base, in cui il valore da restituire
viene calcolato in maniera triviale, e dei passi ricorsivi in cui il valore da restituire viene calcolato
sfruttando il valore restituito dalla funzione stessa su un input “più piccolo”.
ITERAZIONE O RICORSIONE?
Anche se ogni funzione ricorsiva può essere espressa in forma iterativa, molto spesso è più semplice e
chiaro definire una funzione in maniera ricorsiva piuttosto che iterativa.
D’altra parte la ricorsione può essere più costosa (in termini di memoria) in quanto per ogni
invocazione ricorsiva di una funzione viene allocata un’area di memoria nella pila di attivazione.
RICORSIONE E INDUZIONE
La ricorsione è una tecnica algoritmica che ha le sue radici nell’induzione matematica. Quest’ultima è
una tecnica usata per una moltitudine di scopi: definire insiemi, funzione, dimostrare teoremi, ecc.
DEFINIZIONE INSIEMI
DEFINIZIONE DI FUNZIONI
Sono due funzioni definite in maniera induttiva. In questo contesto la parola induzione e la parola
ricorsione sono sinonimi, anche se alla seconda viene generalmente data un’accezione algoritmica,
relativa al calcolo del valore della funzione stessa.
FUNZIONE NUMERO DI PERMUTAZIONI