Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> Computer Programming Languages >> .

Che cosa è la ricorsione in Programmazione

Nella programmazione di computer , ricorsione si verifica quando una funzione o una procedura - in altre parole , una sequenza di istruzioni per l'esecuzione di una particolare funzione - chiama se stessa , direttamente o indirettamente ? . La funzione o procedura modificano il valore del parametro ( s ) passato per la prima volta che viene chiamato e si chiama con il nuovo valore ( s ) . Fattoriali

Il classico esempio di ricorsione comporta fattoriali informatiche . Un fattoriale è il prodotto di un dato numero intero positivo moltiplicato per tutti i numeri interi minori. Il fattoriale di 5 è 5 * 4 * 3 * 2 * 1 , il fattoriale di 4 è 4 * 3 * 2 * 1 e così via . Il fattoriale di qualsiasi numero è uguale a quel numero moltiplicato per il fattoriale del numero immediatamente inferiore . In altre parole , fattoriale ( 5) è uguale a 5 * fattoriale ( 4 ) , fattoriale ( 4) è uguale a 4 * fattoriale ( 3) e così via, quindi una semplice funzione fattoriale potrebbe essere scritta come :

int fattoriale ( int n ) {return n * fattoriale (n - 1) ; }
Base caso

Il problema con questa semplice funzione , tuttavia , è che non ha nessun caso base , o condizione di dire che quando fermarsi. Così com'è , la funzione che continuerà a chiamarsi quando n raggiunto lo zero ed oltre in numeri negativi , tornando fattoriali senza senso . In realtà , una funzione fattoriale ha bisogno di fermarsi quando n = 1 , quindi una vera e propria funzione fattoriale può essere scritto come :

int fattoriale ( int n ) {if ( n == 1) { return 1; } else {return n * fattoriale (n - 1) ; } }

In inglese, la funzione prende in esame il numero passato come parametro e , se il numero è 1 , restituisce 1 . In caso contrario, la funzione restituisce il numero moltiplicato per il fattoriale del numero meno uno.
Programma Stack

Tutti i programmi ricorsivi devono avere un punto di fondo , o di base caso in cui l'operazione è talmente banale che una risposta può essere restituito direttamente . Ricorsione funziona aggiungendo , o spingendo , e la rimozione , o popping , singoli fotogrammi verso e da una struttura di dati nota come stack programma . C'è solo una quantità limitata di spazio sullo stack del programma, così , senza un caso base , un programma ricorsivo sarebbe semplicemente continuando in esecuzione fino a quando lo stack overflow.
Pro e contro
< br

ricorsione > è difficile capire perché non è intuitiva e può apparire , a prima vista , di coinvolgere logica circolare o false. Secondo IBM , la ricorsione è raramente usato dai programmatori di linguaggi di programmazione - che non indicano una sequenza esplicita di passaggi da eseguire - perché credono che è lento e lo spazio rifiuti . Tuttavia , se attuato correttamente , la ricorsione è una tecnica di programmazione potente che può semplificare alcune attività di programmazione .

 

Programmazione © www.354353.com