La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Ricorsione CORDA – Informatica A. Ferrari Testi da Alessandro Bugatti

Presentazioni simili


Presentazione sul tema: "Ricorsione CORDA – Informatica A. Ferrari Testi da Alessandro Bugatti"— 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 è 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 è applicabile, ma la soluzione ricorsiva è più semplice e/o elegante

3 Funzioni ricorsive la funzione richiama se stessa su una versione più piccola dello stesso problema c’è 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"

Presentazioni simili


Annunci Google