Uso della ricorsione

Un algoritmo è detto ricorsivo se risolve un problema riducendo esso ad una istanza dello stesso problema ma con un input più piccolo


Esempio:

Pseudocodice:

procedure funz(n)
	if n = 0
		then return 3
	else
		return 2*funz(n-1)+3

Proviamo la correttezza dell’algoritmo descritto dalla procedura $funz(n)$

Dimostriamo cioè che il valore restituito dalla procedura $funz(n)$ coincide con $f(n)$

dim: usiamo l’induzione matematica su $n$

Esempio: funzione fattoriale $0! = 1$ e $n! = n\cdot (n-1)!$ per $n \geq 1$

Pseudocodice:

procedure fattoriale(n)
	if n = 0 then return 1
		else return n*fattoriale(n-1)

Proviamo la correttezza dell’algoritmo descritto dalla procedura $fattoriale(n)$

Dimostriamo cioè che il valore restituito dalla procedura $fattoriale(n)$ coincide con $n!$

dim: usiamo l’induzione matematica su $n$