Divina proportione … 1:a=a:b 0,618 Prof. Fabrizio Camuso www.camuso.it.

Slides:



Advertisements
Presentazioni simili
UNIVERSITA’ DI MILANO-BICOCCA LAUREA MAGISTRALE IN BIOINFORMATICA
Advertisements

INFORMATICA Algoritmi fondamentali
Uso avanzato di C.
DOL - Classe F4 – Maurizio Di Gangi
Ricorsione Procedure e funzioni ricorsive. Definizioni Un oggetto si dice ricorsivo se è definito totalmente o parzialmente in termini di sé stesso La.
Procedure e funzioni ricorsive
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Informatica Generale Susanna Pelagatti
OMOLOGIA.
La Matematica dei Girasoli
Sezione aurea di un segmento
Iterazione enumerativa (for)
PROGRAMMI DI RICERCA E ORDINAMENTO
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2007/2008 Corso di Programmazione 1 a.a.2007/2008 Prof.ssa Chiara Petrioli Corso di Laurea.
La natura della matematica
INTRODUZIONE ALLA PROGRAMMAZIONE STRUTTURATA
CORSO DI PROGRAMMAZIONE II Introduzione alla ricorsione
Algoritmi e Strutture Dati Valutazione del tempo di esecuzione degli algoritmi.
LdL - LP1 - ver. 6 - lez aa Linguaggi di programmazione I La ricorsione Prof. Luigi Di Lascio Lezione 10.
Strutture di controllo in C -- Flow Chart --
Esercizi C su array e matrici
I tropismi delle piante
Eugenio Mercuri La sezione aurea.
φ = AB/AC = rapporto aureo
IL BELLO, LA MATEMATICA E I NUMERI DI FIBONACCI
GIOCHI MATEMATICI Prof. Nando Geronimi Gela, 18 ottobre 2007.
SIMMETRIA Con questo termine si indica il tipo di ordine che si riscontra in una figura nella disposizione delle varie parti che lo costituiscono.
CODIFICA Da flow-chart a C++.
Vediamo cos’è di preciso l’Heap (in italiano Pila) di Fibonacci.
I frattali e le curve della natura
Il triangolo di Tartaglia
Il linguaggio C Le funzioni C Language Il passaggio dei parametri
Passo 3: calcolo del costo minimo
void binario(int n); …………………
LA MAGIA DEL LONTANO EST INCONTRA “IL GENIO” DEL VICINO OVEST
Una vita da scienziato in un minuto
Heap Ordinamento e code di priorità Ugo de Liguoro.
Ancora ARTE / MATEMATICA , in epoca rinascimentale : la sezione aurea
Quanti conigli ci saranno alla fine di un anno?
Iterazione Vs Ricorsione
Ricorsione Strumento potente per definizioni matematiche
Esercizi La distanza di hamming tra due interi x e y si definisce come il numero di posizioni nella rappresentazione binaria di x e y aventi bit differenti.
SCHEMA SECONDO L’ART COD. CIV
Complessità di un algoritmo
Algoritmi e Strutture dati a.a. 2012/2013 Informazioni sul corso Dr Maria Federico.
Algoritmo che viene utilizzato per elencare gli elementi di un insieme secondo una sequenza stabilita da una relazione d'ordine, in modo che ogni elemento.
Circolo Culturale A. Placanica
OGGETTI AUREI, metallici E Spirali
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE La Ricorsione Marco D. Santambrogio – Ver. aggiornata al 29 Maggio 2014.
Faberlab e «Curie» a.s. 2014/15 1)BASIC ARDUINO e programmazione di base Classi prime e classi terze: due gruppi di alunni ciascuno. Corso di Programmazione.
Sistemi e Tecnologie Informatiche Ricorsione Umberto Ferraro Petrillo.
Array (ordinamento) CORDA – Informatica A. Ferrari.
Un mondo … matematico ? “La matematica è l'alfabeto con il quale
AvanguardiaVisionaria
Le funzioni Rassegna degli argomenti trattati LS Tron 14/15 Prof. Carla Fanchin.
1 Un esempio con iteratore: le liste ordinate di interi.
Informatica A.A. 2009/2010 Parte 4 Dai diagrammi di flusso alla programmazione strutturata: le istruzioni if, for, while, … Corso A: Prof. Stefano Berardi.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE La Ricorsione Marco D. Santambrogio – Ver. aggiornata al 21 Maggio 2014.
La sezione Aurea Sara, Viola, Ilaria.
Allievi Elettrici - AA Le funzioni ricorsive in C
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 8 Oggetti statici e dinamici. Classi annidate. Costruttori/distruttori.
RITRACCIAMENTI di Marco Sturlese 20 Gennaio 2000.
1. 2 Una ricorsione si definisce non lineare quando si ha più di una chiamata ricorsiva per blocco Per capire bene come opera una ricorsione non lineare.
MINIMIZZAZIONE MONODIMENSIONALE: CONFRONTO FRA ALGORITMI
UN PICCOLO GRANDE NUMERO
Tommaso Bassetti, Veronica Ravagli, Brayan Dalle Fabbriche
Un genio artistico dal nome Dio ! La perfezione delle cose create, celate nei codici della Numerologia.
Fibonacci e le progressioni aritmetiche
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo La ricorsione 15 Approccio ricorsivo, esercizi sulla.
Transcript della presentazione:

Divina proportione … 1:a=a:b 0,618 Prof. Fabrizio Camuso www.camuso.it

In geometria … Il rettangolo aureo Prof. Fabrizio Camuso www.camuso.it

Pentagono e pentangolo In geometria … Pentagono e pentangolo Prof. Fabrizio Camuso www.camuso.it

In geometria … Spirale aurea Prof. Fabrizio Camuso www.camuso.it

Nella natura !! Spirale aurea fasi di sviluppo di esseri viventi conchiglie parte inferiore onde marine corna, zanne, becchi, artigli galassie coda comete posizione ombelico Prof. Fabrizio Camuso www.camuso.it

Fibonacci - 1 0 1 1 2 3 5 8 13 21 34 … Prof. Fabrizio Camuso www.camuso.it

Fibonacci - 2 Sulla testa di un tipico girasole, per esempio, il numero delle spirali rientra molto spesso in questo schema:  89 spirali che si irradiano ripide in senso orario; 55 che si muovono in senso antiorario e 34 che si muovono in senso orario ma meno ripido. Questi sono tre numeri adiacenti delle sequenza di Fibonacci. Il più grande girasole che si sia mai conosciuto aveva 144, 89 e 55 spirali. Prof. Fabrizio Camuso www.camuso.it

Fibonacci - 3 In molte specie vegetali, prime fra tutte le Astaracee (girasoli, margherite, ecc.), il numero dei petali di ogni fiore è di solito un numero di Fibonacci, come 5, 13, 55 o perfino 377, come nel caso della diaccola. Prof. Fabrizio Camuso www.camuso.it

Fibonacci - 4 In molte specie vegetali, prime fra tutte le Astaracee (girasoli, margherite, ecc.), il numero dei petali di ogni fiore è di solito un numero di Fibonacci, come 5, 13, 55 o perfino 377, come nel caso della diaccola. E le pigne ??? Prof. Fabrizio Camuso www.camuso.it

Fibonacci - 5 Le foglie sono disposte sui rami in modo tale da non coprisi l’una con l’altra per permettere a ciascuna di esse di ricevere la luce del sole. Se prendiamo come punto di partenza la prima foglia di un ramo e passiamo di foglia in foglia in senso orario o antiorario, il numero di giri che compiremo prima di trovare una foglia sopra quella di partenza corrisponde sempre ad un numero di Fibonacci. Partendo da una foglia qualunque, dopo uno, due, tre o cinque giri dalla spirale si trova sempre una foglia allineata con la prima. a seconda delle specie, questa sarà la seconda, la terza, la quinta, l'ottava o la tredicesima foglia. Prof. Fabrizio Camuso www.camuso.it

Fibonacci – 6 I NUMERI DI FIBONACCI E LA BORSA DI MILANO Un’applicazione moderna dei numeri di Fibonacci si può riscontrare presso la borsa azionistica di Milano. Prendendo spunto da Leonardo Fibonacci da Pisa, uno dei più grandi protagonisti della storia della matematica, Ralph Elson Elliot elaborò una precisa teoria di previsione dei mercati finanziari con la quale in tempi recenti sono stati anticipati i più grandi rialzi e i più grandi crolli di borsa. Usando le onde di Elliot ed i numeri di Fibonacci, il docente universitario G. Migliorino ha previsto con incredibile precisione il punto minimo del drammatico ribasso dell’estate ‘98. . Prof. Fabrizio Camuso www.camuso.it

Fibonacci – 7 I NUMERI DI FIBONACCI NEL PROCESSORE PENTIUM I numeri di Fibonacci sono utilizzati anche nel sistema informatico di molti computer. In particolare vi è un complesso meccanismo basato su tali numeri, detto "Fibonacci heap" che viene utilizzato nel processore Pentium della Intel per la risoluzione degli algoritmi. Prof. Fabrizio Camuso www.camuso.it

Fibonacci – 8 Anche la musica non sfugge al fascino del rapporto aureo. Anzitutto le note: in una scala completa (compreso il do della scala successiva) i rapporti fra le note corrispondono molto precisamente ai numeri di Fibonacci … Un ambiente d' ascolto, ma anche una cassa acustica, minimizzerà le risonanze se le dimensioni sono in rapporto aureo tra loro.  Ancora oggi la sezione aurea è ampliamente utilizzata: le dimensioni standard di carte di credito, tessere telefoniche, badge per ogni applicazione, corrispondono (salvo tolleranze di fabbricazione) al rettangolo aureo.  Prof. Fabrizio Camuso www.camuso.it

Fibonacci – 9 George Cardas decide di sfruttare il concetto di rapporto aureo per la costruzione di cavi audio ad alte prestazioni e questa trovata e' protetta da ben due brevetti (US Pat. 4.628.151 e 4.980.517). Prof. Fabrizio Camuso www.camuso.it

Fibonacci 0 1 1 2 3 5 8 13 … 0 1 1 2 3 5 8 13 ? … (Versione Iterativa) int fib_ite(int num) { int i=0, prossimo=0, unoIndietro=0,dueIndietro=0; if (num==1) return 0; else if (num==2) return 1 else; dueIndietro=0; unoIndietro=1; for (int i=3; i<=num; i++) prossimo=unoIndietro+dueIndietro; dueIndietro=unoIndietro; unoIndietro=prossimo; } return prossimo Fibonacci (Versione Iterativa) 0 1 1 2 3 5 8 13 ? … dueIndietro unoIndietro prossimo 0 1 1 2 3 5 8 13 … dueIndietro unoIndietro prossimo Prof. Fabrizio Camuso www.camuso.it

Fibonacci (Versione Ricorsiva) Niente Var locali !! Base della int fib_ric(int num) { if (num==1) return 0; else if (num==2) return 1; return fib_ric(num-2)+fib_ric(num-1); } Niente Var locali !! Base della ricorsione Passo ricorsivo Prof. Fabrizio Camuso www.camuso.it

* Di cosa si tratta …(videolezione ‘Ricorsione’ - minuto19.45) La torre di Hanoi - 1 * Di cosa si tratta …(videolezione ‘Ricorsione’ - minuto19.45) Prof. Fabrizio Camuso www.camuso.it

La torre di Hanoi – 2 (versione iterativa) ?????? protected void iterativeSolve(int n, int da, int a, int per) { int[] pioli = {da, a, per}; int dim; int n_mvs; int from; int to;   for (int i = 0; i < mvlist.length; i++) { dim = calcDim(i + 1); n_mvs = i / (int)Math.pow(2, dim) + 1 / 2; if ((n - dim + 1) % 2 == 1) { from = (int)(n_mvs % 3); to = (from + 1) % 3; } else { from = (int)(-(n_mvs % 3 - 3) % 3); to = (from + 2) % 3; } mvlist[i] = new HanoiMove(pioli[from], pioli[to]); private int calcDim(int mv) { int pos = 0; while (mv > 0) { pos++; if (mv % 2 == 1) mv = 0; else mv /= 2; return pos; La torre di Hanoi – 2 (versione iterativa) ?????? Prof. Fabrizio Camuso www.camuso.it

(versione ricorsiva)     La torre di Hanoi – 3 (versione ricorsiva)     void move(int N, int start, int final, int temp) { if (count > 0) { move(N-1,start,temp,final); cout << "Muovi da {0} a {1}\n“ << start << final; move(N-1,temp,final,start); } Passo ricorsivo Passo ricorsivo Dov’è la base della ricorsione ? Prof. Fabrizio Camuso www.camuso.it

Strutture ad albero – 1 Radice (root) arco Struct Nodo { string info; foglia figlio fratelli Struct Nodo { string info; sx: Nodo *; dx: Nodo *; } Prof. Fabrizio Camuso www.camuso.it

Ma non è tutto oro quello che luccica … Strutture ad albero – 2 void stampa(Nodo * albero) { if (albero!=null) stampa(albero->sx); cout << albero->info << endl; stampa(albero->dx) } StampaAlbero(inizio) StampaAlbero(inizio^.sx) StampaAlbero(inizio^.dx) StampaAlbero(inizio^.sx^.sx) StampaAlbero(inizio^.dx^.dx) … StampaAlbero(nil) Ma non è tutto oro quello che luccica … Prof. Fabrizio Camuso www.camuso.it

algoritmi importanti pronti per le architetture parallele Altre applicazioni algoritmi importanti pronti per le architetture parallele int binsearch(int a[], int sx, int dx, int el) { int x; if (dx < sx) return -1; x = (dx + sx)/2; if (el < a[x]) return binsearch(a,sx,x-1,el); else if (el == a[x]) return x; return binsearch(a,x+1,dx,el); } Prof. Fabrizio Camuso www.camuso.it

Altre applicazioni - quicksort Prof. Fabrizio Camuso www.camuso.it

Altre applicazioni – XML parsing Prof. Fabrizio Camuso www.camuso.it

Altre applicazioni – backtracking Una tecnica classica consiste nell'esplorazione di strutture ad albero e tenere traccia di tutti i nodi e i rami visitati in precedenza, in modo da poter tornare indietro al più vicino nodo che conteneva un cammino ancora inesplorato nel caso che la ricerca nel ramo attuale non abbia successo. Esiste addirittura un famoso linguaggio di programmazione usatissimo per risolvere problemi di intelligenza artificiale basato interamente per il suo funzionamento sul backtracking: il prolog Prof. Fabrizio Camuso www.camuso.it

Riassumendo … La base della ricorsione: è il caso più semplice, quello per il quale sappiamo subito ‘calcolare’ il risultato. Quello a cui il meccanismo ricorsivo tenta di ricondursi un poco alla volta, passo dopo passo. Il passo ricorsivo: quando non siamo di fronte al caso più semplice dobbiamo tentare di esprimerlo attraverso una ‘formula’ che richiama lo stesso sottoprogramma che stiamo scrivendo ma con argomenti semplificati che ci avvicinano al caso che rappresenta la base della ricorsione Prof. Fabrizio Camuso www.camuso.it

Fattoriale … Fatt( N ) = 1 se N =0 N * Fatt(N-1) se N>0 Prof. Fabrizio Camuso www.camuso.it

xy , con x e y interi positivi 1 se y =0 x * XallaY(x,y-1) se y>0 XallaY(x,y) = Prof. Fabrizio Camuso www.camuso.it

X * Y x se y =1 XperY(x,y) = x + XperY(x,y-1) se y>0 Prof. Fabrizio Camuso www.camuso.it

Fibonacci 0 se N =1, 1 se N=2 Fib(n) = Fib(N-2)+Fib(N-1) se N>2 Prof. Fabrizio Camuso www.camuso.it