La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Ricorsione CORDA – Informatica A. Ferrari Testi da Alessandro Bugatti Olimpiadi di Informatica Guida alle sezioni territoriali.

Presentazioni simili


Presentazione sul tema: "Ricorsione CORDA – Informatica A. Ferrari Testi da Alessandro Bugatti Olimpiadi di Informatica Guida alle sezioni territoriali."— Transcript della presentazione:

1 Ricorsione CORDA – Informatica A. Ferrari Testi da Alessandro Bugatti Olimpiadi di Informatica Guida alle sezioni territoriali

2 Campi di applicazione  problemi di tipo “divide et impera”  la soluzione di un problema si ottiene suddividendo il problema in due o più parti che lo compongono, le quali vengono risolte separatamente e poi si rimette insieme quanto ottenuto per avere la soluzione al problema di partenza  problemi dove e ̀ necessario generare tutti i casi possibili rispetto ad alcune scelte che si possono fare e scegliere il caso ottimo per il problema in questione  problemi di programmazione dinamica, nei quali la soluzione iterativa e ̀ applicabile, ma la soluzione ricorsiva e ̀ più semplice e/o elegante

3 Funzioni ricorsive  la funzione richiama se stessa su una versione più piccola dello stesso problema  c’e ̀ sempre una condizione di cui si conosce la soluzione e che fa terminare la ricorsione Se una delle precedenti caratteristiche non venisse rispettata si entrerebbe in una ricorsione infinita

4 Algoritmi ricorsivi  la maggior parte dei problemi ha una formulazione iterativa diretta  esiste un insieme di problemi in cui la formulazione ricorsiva risulta più semplice e elegante da esprimere e da implementare

5 … problemi della ricorsione  Un problema che nella pratica limita l’utilizzo della ricorsione si ha quando le chiamate ricorsive non crescono in modo lineare, ma in maniera molto più veloce  Esempio: numero di Fibonacci

6 Fibonacci (funzione elegante ma inefficiente)

7 Programmazione dinamica  Tecnica di progettazione di algoritmi basata su  divisione del problema in sottoproblemi  utilizzo di sottostrutture ottimali  Sottostruttura ottimale  la soluzione ottimale al sottoproblema può essere utilizzata per trovare la soluzione ottimale dell'intero problema

8 Fibonacci (programmazione dinamica) il vettore poteva non essere utilizzato, perché ad ogni passo servono solo i due valori precedenti e quindi sarebbero bastate due variabili

9 Fibonacci ricorsivo (programmazione dinamica) E’ necessario inizializzare Fibonacci con tutti i suoi elementi a -1, Fibonacci[0]=0 e Fibonacci[1]=1


Scaricare ppt "Ricorsione CORDA – Informatica A. Ferrari Testi da Alessandro Bugatti Olimpiadi di Informatica Guida alle sezioni territoriali."

Presentazioni simili


Annunci Google