Ricorsione
Definizione: “La ricorsione è un procedimento tramite cui definiamo un’entità in termini di sé stessa.”
Esempi
- Broccolo romanesco
- Triangolo di Sierpinsky
- Fotografia con all’interno uno specchio
Usiamo la ricorsività anche in matematica, ad esempio per il fattoriale o per le prove per induzione.
Dato che la ricorsione esiste nella natura, nella realtà, è necessario introdurla anche nei linguaggi di programmazione.
La ricorsività in C è definita come una funzione che invoca sé stessa. Nella pratica, abbiamo bisogno di alcuni elementi:
- Caso base, di partenza: ad esempio per il fattoriale 0!=1 oppure x0 = 1
- Passo ricorsivo: la funzione chiama sé stessa, sempre per il fattoriale: n! = n*(n-1)!
- Costruzione della soluzione: costruiamo la soluzione sulla base della chiamata delle n ricorsioni, fino ad arrivare al caso base, nel caso del fattoriale, n(n-1)(n-2)*....*0!
Uso della memoria nella programmazione ricorsiva
- La programmazione ricorsiva comporta spesso un uso inefficiente della memoria per la gestione degli spazi di lavoro delle chiamate generate
- In alcuni casi viene comunque preferita ad altri approcci per la sua eleganza e semplicità
- In altri casi si può ricorrere ad implementazioni iterative
Fattoriale e ricorsione in C
lo fattoriale= base 81071casa
Ricorsione ) 1)gluglu n= -
In C: iterazione che già visto iterativa avevamo soluzione distingue con fattoriale si da [ ,include tdio.li# > ( ) intint fattoriale ricorsiva n ;-)(int )mainint 8;num ,i " "Tod )&(sceaug num ;, )(fattoriale ricorsivolo ;num= _ "d )" % 8(printf & ; #, }& fattoriale ricorsivoi _(a)! n }
fattoriale D= Si(ricorsivo1. ←- :fattorereturn :0 ; -1-1=1} (1)1fattoriale (1)2. ricorsivo = '- ÷2.1=2= (2)n""i. ÷ ÷ .- (2)fattoriale ricorsivo3. Se= 6c-- fattoriale ricorsivoint fr 3.2=6; = _(3)})(if -0n = fIn 1 ;_-} 3}che )(fattoriale ricorsivofren 1* ;n -_} frreturn ;} scriverlo modo più di Esiste compatto: un })( modo fatt nic questointint i
-
Ricorsione
-
Informatica I - la ricorsione
-
Informatica I - Esercizi ricorsione e stringhe
-
Informatica I - la ricorsione multipla