Ho appena iniziato a conoscere la ricorsione, ma mi sto divertendo a capirlo. Si prega di raccomandare qualsiasi link o libro che spieghi in dettaglio la ricorsione.
Ho appena iniziato a conoscere la ricorsione, ma mi sto divertendo a capirlo. Si prega di raccomandare qualsiasi link o libro che spieghi in dettaglio la ricorsione.
Inizia con un foglio di carta che contiene il numero 1 e la frase "cambia il numero aggiungendone uno". Fai ciò che è scritto sul pezzo di carta.
Quella citazione è la nostra funzione:
count = 1
def function():
global count
count += 1
Modifica la nota (la nostra funzione) per dire: "cambia il numero aggiungendo uno, poi fai ciò che è scritto sulla nota". Fai ciò che è letteralmente sul pezzo di carta - cambia il numero, poi fai ciò che è scritto sulla carta, che è quello di cambiare il numero e fare ciò che è sulla carta, che è quello di cambiare il numero e fare ciò che è sulla carta , ...
Ancora una volta, questa citazione è la nostra funzione:
count = 1
def function():
global count
count += 1
function() # <- this is what makes this function recursive
# ie: "do what is written on the paper"
Questa è una ricorsione infinita. Quando chiami la funzione, fa qualcosa, quindi chiama se stessa.
La ricorsione pratica dice che hai bisogno di una sorta di condizione per dirti quando fermarti. Per fare ciò, modifica quello che c'è sulla nota da leggere "Modifica il numero aggiungendo uno. Se il numero è inferiore a 100, allora fai ciò che è scritto sulla carta". Ancora una volta, quella citazione è la nostra funzione:
count = 1
def function():
global count
count += 1
if (count < 100):
function()
In generale, ogni funzione ricorsiva corretta ha bisogno di una sorta di "condizione terminale" - un test che impedisce alla funzione di chiamarsi per sempre.
Scrivi su un pezzo di carta "Cambia il numero aggiungendo uno, fai ciò che è scritto su questo foglio". Metti quel pezzo di carta in tasca come promemoria di cosa sia la ricorsione.
Nota: il fatto che l'esempio incrementi un numero non è affatto correlato alla ricorsione in generale. È solo un modo semplice per rappresentare "fare del lavoro". Una funzione ricorsiva non deve necessariamente incrementare o decrementare un contatore. Tutto ciò di cui ha bisogno è un modo per determinare quando non c'è più lavoro da fare.
Se ancora non capisci cos'è la ricorsione, leggi questa risposta alla domanda " Problemi nella comprensione della ricorsione ".