Principio di induzione
Il principio di induzione è una tecnica per provare che una proprietà è valida per tutti i numeri di .
La tecnica per dimostrare la proprietà consiste nel:
- Caso base, per cui si dimostra che è vero
- Passo induttivo, per cui si dimostra che , cioè che se è dato per vero (ipotesi induttiva), anche deve esserlo
Per esempio, si ha da dimostrare che con , :
-
Caso base:
-
Passo induttivo:
Sia l'ipotesi induttiva scontata, con .
E quindi è verificato che
Principio di induzione completo
Tramite il principio di induzione completo (o forte) è possibile semplificare il processo di dimostrazione visto che si considerano veri tutti i numeri dal caso base fino a nel passo induttivo.
Quindi, per dimostrare la proprietà va dimostato:
- Caso base, per cui si dimostra se è vero
- Passo induttivo, per cui si dimostra che se la proprietà vale per i primi numeri allora vale anche per , quindi .
Per esempio, si ha da dimostrare che vale :
-
Caso base: vale perchè che è primo.
-
Passo induttivo:
Si suppone che quando , tutti i numeri tra ed siano scomponibili: che è quindi l'ipotesi induttiva.
Si vuole quindi dimostrare che la proprietà vale per , ed esistono due casi per cui dovrebbe valere:
- è primo, allora vale perchè è già scomposto
- non è primo, allora
per cui .
Per ipotesi induttiva e sono scomponibili in fattori primi e quindi lo è anche .
Funzioni ricorsive
Oltre a dimostrare la proprietà definita dalle funzioni ricorsive, va anche dimostrato che terminano.
Per esempio, la funzione , con , può essere espressa come: e si vuole dimostrare che è ben definita (cioè che trova veramente ):
-
Caso base:
-
Passo induttivo:
Sia con , si assume per vero e che sia quindi l'ipotesi induttiva.
Va verificato che quindi,
Inoltre si vuole dimostrare che la funzione corrispondente ,
int fact(int n) {
if (n == 0) {
return 1;
}
return fact(n-1) * n;
}
termina e restituisce :
-
Caso base: Con ,
fact(n)
restituisce -
Passo induttivo:
Sia con e si suppone che
fact(n-1)
termina e restituisce .Allora,