ricorsione in Python

Come usare la ricorsione Python

La ricorsione Python è un argomento intimidatorio per i principianti. Sfatiamo il mito che la ricorsione è difficile definendola. La ricorsione è un metodo di programmazione in cui una funzione chiama se stessa.

Sembra semplice, vero? Quando ci si prende la mano, la ricorsione non è un concetto difficile.

In questo tutorial di Python, parleremo della ricorsione e di come funziona. Esamineremo un esempio di ricorsione utilizzando le funzioni fattoriali per aiutarti a iniziare con questo metodo di programmazione.

Cos’è la ricorsione?

La ricorsione è dove definisci qualcosa in termini di stesso.

Una funzione ricorsiva risolve i problemi richiamandosi di nuovo. Questo comportamento è supportato nella maggior parte dei principali linguaggi di programmazione, come Python. Sono una parte cruciale dell’informatica e della scienza dei dati.

La ricorsione è utile quando la soluzione a un problema può essere trovata suddividendola in problemi più piccoli che utilizzano tutti la stessa formula. Questi tipi di problemi sono spesso chiamati "algoritmi ricorsivi". La chiave per risolverli sta nel nome!

Iterativo vs. ricorsivo

Ci sono due modi per risolvere un algoritmo: iterativo o ricorsivo.

Le soluzioni iterative agli algoritmi sono considerate "potenti ma brutte." Fanno il lavoro, ma non lo fanno esattamente nel modo più elegante. Per comprendere correttamente gli algoritmi ricorsivi, dobbiamo esaminare le funzioni iterative.

L’81% dei partecipanti ha dichiarato di sentirsi più sicuro delle proprie prospettive di lavoro nel settore tecnologico dopo aver partecipato a un bootcamp. Fatti abbinare a un bootcamp oggi.

Il laureato medio del bootcamp ha trascorso meno di sei mesi nella transizione di carriera, dall’avvio di un bootcamp alla ricerca del primo lavoro.

Un funzione è una funzione che risolve un problema utilizzando un ciclo. Eseguirà il codice all’interno di un ciclo fino al completamento del ciclo. Una funzione ricorsiva è una funzione che scompone un problema in parti più piccole e risolve ogni parte chiamando se stessa.

Factorials: The Iterative Example

I fattoriali sono un buon modo per dimostrare la ricorsione e pensiero iterativo. In matematica, i fattoriali sono la somma di un numero e di ogni numero prima di essere moltiplicato.

Il fattoriale di 5 è uguale a 5 * 4 * 3 * 2 * 1. Il fattoriale di 2 è uguale a 2 * 1.

Per calcolare un fattoriale, possiamo scrivere una funzione iterativa:

Questa funzione utilizza un ciclo for per scorrere tutti i numeri nell’intervallo di 1 e il numero che abbiamo specificato più 1. Per ogni iterazione, il numero su cui itera il ciclo viene moltiplicato per il totale. Chiamiamo la nostra funzione per trovare il fattoriale:

Il nostro codice restituisce: 24. Per arrivare a questa soluzione, il nostro codice esegue:

  • 1 * 1 = 1
  • 2 * 2 = 4
  • 4 * 3 = 8
  • 8 * 4 = 24

Come puoi vedere, il nostro codice moltiplica 4 con tutti i numeri inferiori a esso e poi se stesso.

Questo codice è funzionale. L’unico inconveniente è che non è cosi elegante come potrebbe essere. è qui che le funzioni ricorsive tornano utili.

Factorials: The Recursion Example

Scriviamo una funzione ricorsiva che calcoli un fattoriale. Apri un nuovo file Python e incolla il seguente codice:

Questo codice usa l’approccio ricorsivo. Quando questa funzione viene eseguita, un "if" viene eseguita l’istruzione. Questa istruzione controlla se il numero passato alla funzione è uguale a 1. Se lo è, la nostra funzione restituisce 1. Altrimenti, viene calcolato il fattoriale del nostro numero.

Questo calcolo funziona moltiplicando il numero passato alla funzione dal fattoriale del numero precedente. Questa funzione viene chiamata ripetutamente fino a quando "numero" è uguale a 1. Ad ogni chiamata della funzione, il valore di "numero" viene ridotto di 1.

Proviamo il nostro codice con il numero 4:

La risposta 24 viene restituita. La nostra risposta è corretta; è la stessa dell’ultimo esempio. Abbiamo trovato la soluzione a questo problema in modo ricorsivo anziché iterativo.

Hai ancora bisogno di un po’ di aiuto? Vediamo un altro esempio di ricorsione.

Ricorsione con la sequenza di Fibonacci

La sequenza di Fibonacci è una sequenza matematica in cui ogni numero è la somma dei due numeri precedenti.Questa sequenza inizia con: 0, 1, 1, 2, 3, 5, 8, 13 e cosi via.

Questa sequenza aggiunge due numeri per trovare il numero successivo. Questo lo rende ideale per la ricorsione.

Apri un file Python e incolla questo codice:< br>

Questo codice calcolerà la somma di due numeri precedenti in un elenco, purché "number" è maggiore di 1. In caso contrario, "viene restituito il numero". Ora, chiamiamo la nostra funzione:

"Il Karma di carriera è entrato nella mia vita quando ne avevo più bisogno e mi ha aiutato rapidamente ad abbinarmi a un bootcamp. Due mesi dopo la laurea, ho trovato il lavoro dei miei sogni che allineato con i miei valori e obiettivi nella vita!"

Venus, Software Engineer presso Rockbot

La variabile esecuzioni tiene traccia di quanti numeri nel sequenza di fibonacci che vogliamo calcolare. Lo usiamo per creare un ciclo for che chiama la nostra funzione fibonacci() per ogni numero nell’intervallo 1 e il valore di "esecuzioni."

Prima che inizi il nostro ciclo for, stampiamo "Sequenza di Fibonacci:" alla console. In questo esempio, il nostro "per" il ciclo esegue:

Eseguiamo il nostro codice tutti insieme e vediamo cosa succede:

Il nostro codice calcola i primi cinque numeri della sequenza di Fibonacci. Potremmo calcolare più numeri aumentando il valore di "esecuzioni".

Profondità di ricorsione e condizioni di base

Una funzione ricorsiva deve avere una condizione di base. Questa è una condizione che interrompe la ricorsione quando viene soddisfatto un particolare caso base. Senza una funzione di base, verrà creato un ciclo infinito.

Per impostazione predefinita, una funzione ricorsiva non può essere eseguita più di 1.000 volte. Una volta raggiunto questo limite, viene visualizzato un errore come questo:

Ecco la condizione di base per il nostro programma fibonacci:

Questa condizione controlla se il valore di "numero" all’interno del nostro programma fibonacci è uguale o inferiore a 1. Se lo è, viene restituito il valore di "numero", altrimenti viene avviata la funzione ricorsiva.

Perché Devo usare la ricorsione?

Qual ‚Äã‚Äãè il vantaggio di usare la ricorsione sulle funzioni iterative? Tecnicamente, entrambi i metodi possono ottenere lo stesso risultato. Il vantaggio t di ricorsione è che è più facile da leggere.

Quando vedi una funzione ricorsiva, è chiaro che la risposta a un problema sta nella scomposizione in parti più piccole. Sebbene i cicli iterativi a volte possano essere più veloci, le funzioni ricorsive sono generalmente preferite a causa della loro leggibilità.

Poiché le funzioni ricorsive sono più facili da leggere, sono anche più facili da gestire e da eseguire il debug. Ciò è particolarmente utile quando si scrivono algoritmi complessi che possono essere difficili da capire.

Conclusione

Una funzione ricorsiva è una funzione che chiama se stessa per trovare la soluzione a un problema. ;

Le funzioni ricorsive suddividono un problema in più parti e ne risolvono una parte per iterazione. Le funzioni ricorsive sono comunemente usate per calcolare fattoriali e numeri nella sequenza di Fibonacci. Sono utilizzati anche in numerosi algoritmi.

Ora sei pronto per iniziare a lavorare con le funzioni ricorsive in Python.

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method