DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Iterazione Vs Ricorsione Marco D. Santambrogio – Ver. aggiornata al 8 Gennaio 2016.

Slides:



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

Ricorrenze Il metodo di sostituzione Il metodo iterativo
Process synchronization
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
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
Fondamenti di Informatica CDL in Ingegneria Gestionale (B)- A.A CDL in Ingegneria Gestionale (B)- A.A Programmazione Ricorsiva.
UNIVERSITA DI MILANO-BICOCCA CdL IN INFORMATICA Corso di Algoritmi e Ricerca Operativa Prof. Giancarlo Mauri LEZIONE 2.
Lez. 41 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Programmazione.
Introduzione agli algoritmi. Definizione Sistema di regole e procedure di calcolo ben definite che portano alla soluzione di un problema con un numero.
Capitolo 1 Unintroduzione informale agli algoritmi Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Capitolo 1 Unintroduzione informale agli algoritmi Algoritmi e Strutture Dati.
Iterazione enumerativa (for)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
Process synchronization
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Capitolo 1 Unintroduzione.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
INTRODUZIONE ALLA PROGRAMMAZIONE STRUTTURATA
CORSO DI PROGRAMMAZIONE II Introduzione alla ricorsione
Algoritmi e Strutture Dati
memoria gestita staticamente:
Introduzione alla Ricorsione
ESERCIZIO: la Torre di Hanoi
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
Algoritmi e Strutture Dati
I numeri di Fibonacci.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Script 1 Marco D. Santambrogio – Ver. aggiornata al 2 Dicembre 2013.
Iterazione Vs Ricorsione
1 Parte 5 Fondamenti di Programmazione. 2 Programmazione Concetti base: dati istruzioni Dati: variabili tipi Istruzioni: istruzioni base strutture di.
Ricorsione Strumento potente per definizioni matematiche
Complessità di un algoritmo
Fine La Torre di Hanoi.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE La Ricorsione Marco D. Santambrogio – Ver. aggiornata al 29 Maggio 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Ottobre 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE La Ricorsione Marco D. Santambrogio – Ver. aggiornata al 21 Maggio 2014.
La ricorsione.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Allievi Elettrici - AA Le funzioni ricorsive in C
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
4/25/2015E. Giovannetti -- OI09.1 Olimpiadi di Informatica 2010 Giornate preparatorie Dipartimento di Informatica Università di Torino marzo –
Capitolo 1 Un’introduzione informale agli algoritmi Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Informatica 4 La ricorsione. Definizione di ricorsione Ricorsione è la proprietà di quei programmi che, all’interno delle istruzioni che li compongono,
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE La Ricorsione Marco D. Santambrogio – Ver. aggiornata al 29 Maggio 2014.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Capitolo 1 Un’introduzione.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Iterazione Vs Ricorsione Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Matteo Ferroni –
10. Programmazione Ricorsiva Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 22 Marzo 2016.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE La Ricorsione Marco D. Santambrogio – Ver. aggiornata al 18 Maggio 2016.
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo La ricorsione 15 Approccio ricorsivo, esercizi sulla.
Process synchronization
Process synchronization
Process synchronization
Iterazione Vs Ricorsione
Iterazione Vs Ricorsione
Process synchronization
Process synchronization
Process synchronization
Iterazione Vs Ricorsione
Transcript della presentazione:

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Iterazione Vs Ricorsione Marco D. Santambrogio – Ver. aggiornata al 8 Gennaio 2016

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Prima di tutto… 2

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Riscaldiamoci subito un po’… 4

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Riscaldiamoci subito un po’… 5

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEObiettivi Induzione matematica Iterazione Cosa significa “ricorsivo” Iterazione Vs ricorsione 6

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE L’induzione matematica Si usa nelle definizioni e nelle dimostrazioni 7

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE L’induzione matematica Si usa nelle definizioni e nelle dimostrazioni Definizione: numeri pari  1) 0 è un numero pari  2) se n è un numero pari anche n+2 è un numero pari 8

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE L’induzione matematica Si usa nelle definizioni e nelle dimostrazioni Definizione: numeri pari  1) 0 è un numero pari  2) se n è un numero pari anche n+2 è un numero pari Dimostrazione: dimostro che (2n) 2 =4n 2 (distributività della potenza di 2 risp. alla moltiplicazione)  1) n=1 : vero  2) suppongo sia vero per k, lo dimostro per k+1: (2(k+1)) 2 =(2k+2) 2 =(2k) 2 +8k+4= (per hp di induzione) 4k 2 +8k+4 = 4(k 2 +2k+1) = 4(k+1) 2  1) è il passo base, 2) è il passo di induzione 9

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il tacchino induttivista Un tacchino induttivista viene allevato in una fattoria del Maine (USA) Ogni giorno alle 7am Mr Jones porta il cibo al tacchino induttivista Il tacchino segue il seguente ragionamento:  Il giorno 1 Mr Jones mi ha portato il 7am  Ieri era il giorno “n” e Mr Jones mi ha portato il 7am  Oggi è il giorno “n+1” ed il cibo è arrivato  Tutti i 7am Mr Jones mi porterà il cibo … Thanksgiving 10

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Iterazione e ricorsione Sono i due concetti informatici che nascono dal concetto di induzione 11

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEIterazione L’iterazione si realizza mediante la tecnica del ciclo Il calcolo del fattoriale:  0!=1  n!=n(n-1)(n-2)….1 (realizzo un ciclo) 12

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEIterazione Il calcolo del fattoriale mediante una tecnica iterativa: function [f]=fact(n) f=1; for i=1:n f=f*i; end 13

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE La ricorsione Dal latino re-currere  ricorrere, fare ripetutamente la stessa azione In informatica: si tratta di procedure/funzioni che richiamano se stesse Il concetto di ricorsione viene usato nel contesto di:  algoritmi  strutture dati 14

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE “Flusso” di lavoro Il programmatore formula l’algoritmo dal generale al particolare  Si descrivono la funzione sulla globalità dei dati in termini della funzione stessa sui dati disgregati L’algoritmo viene poi eseguito dal particolare al generale  Vengono infatti lasciate in sospeso le operazioni globali e il calcolo vero e proprio inizia dai dati atomici 15

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Definizione ricorsiva del fattoriale 1) n!=1 se n=0 2) n!= n*(n-1)! se n>0  riduce il calcolo a un calcolo più semplice  ha senso perché si basa sempre sul fattoriale del numero più piccolo, che io conosco  ha senso perché si arriva a un punto in cui non è più necessario riusare la def. 2) e invece si usa la 1)  1) è il passo base, 2) è il passo di ricorsione 16

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmo ricorsivo per fattoriale function [f]=factRic(n) if (n==0) f=1; else f=n*factRic(n-1); end Quando si può dire che una ricorsione è ben definita?  Informalmente: se ogni volta che applico la ricorsione sono significativamente più vicino al passo base, allora la definizione non è circolare. 17

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esempio di traccia Calcoliamo il fattoriale di 4: 4=0? No: calcoliamo il fattoriale di 3 e molt. per 4 3=0? No: calcoliamo il fattoriale di 2 e molt. per 3 2=0? No: calcoliamo il fattoriale di 1 e molt. per 2 1=0? No: calcoliamo il fattoriale di 0 e molt. per 1 0=0? Si: il fattoriale di 0 è 1. Risaliamo: il fattoriale di 1 è 1 per il fattoriale di 0 cioè 1*1=1 il fattoriale di 2 è 2 per il fattoriale di 1 cioè 2*1=2 il fattoriale di 3 è 3 per il fattoriale di 2 cioè 3*2=6 il fattoriale di 4 è 4 per il fattoriale di 3 cioè 4*6=24 18

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE n:3f:.. factRic (1) Ambienti locali gestiti in modo LIFO (Last In First Out) Cancellati in ordine inverso a quello un cui sono stati creati Si usa una struttura di dati detta PILA Gestione a pila degli ambienti locali delle funzioni 19

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE n:3f:.. factRic (1) n:3f:.. factRic (2) n:2f:.. factRic Ambienti locali gestiti in modo LIFO (Last In First Out) Cancellati in ordine inverso a quello un cui sono stati creati Si usa una struttura di dati detta PILA Gestione a pila degli ambienti locali delle funzioni 20

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE n:3f:.. factRic (1) n:3f:.. factRic (2) n:2f:.. factRic n:3f:.. factRic (3) n:2f:.. factRic n:1f:.. factRic Ambienti locali gestiti in modo LIFO (Last In First Out) Cancellati in ordine inverso a quello un cui sono stati creati Si usa una struttura di dati detta PILA Gestione a pila degli ambienti locali delle funzioni 21

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE n:3f:.. factRic (1) n:3f:.. factRic (2) n:2f:.. factRic n:3f:.. factRic (3) n:2f:.. factRic n:1f:.. factRic n:3f:.. factRic (4) n:2f:.. factRic n:1f:.. factRic n:0f:.. factRic Ambienti locali gestiti in modo LIFO (Last In First Out) Cancellati in ordine inverso a quello un cui sono stati creati Si usa una struttura di dati detta PILA Gestione a pila degli ambienti locali delle funzioni 22

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE n:3f:.. factRic (1) n:3f:.. factRic (2) n:2f:.. factRic n:3f:.. factRic (3) n:2f:.. factRic n:1f:.. factRic n:3f:.. factRic (4) n:2f:.. factRic n:1f:.. factRic n:0f:.. factRic n:3f:.. factRic (5) n:2f:.. factRic n:1f:.. factRic n:0f:1 factRic Ambienti locali gestiti in modo LIFO (Last In First Out) Cancellati in ordine inverso a quello un cui sono stati creati Si usa una struttura di dati detta PILA Gestione a pila degli ambienti locali delle funzioni 23

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE n:3f:.. factRic (1) n:3f:.. factRic (2) n:2f:.. factRic n:3f:.. factRic (3) n:2f:.. factRic n:1f:.. factRic n:3f:.. factRic (4) n:2f:.. factRic n:1f:.. factRic n:0f:.. factRic n:3f:.. factRic (5) n:2f:.. factRic n:1f:.. factRic n:0f:1 factRic n:3f:.. factRic (6) n:2f:.. factRic n:1f:1 factRic Ambienti locali gestiti in modo LIFO (Last In First Out) Cancellati in ordine inverso a quello un cui sono stati creati Si usa una struttura di dati detta PILA Gestione a pila degli ambienti locali delle funzioni 24

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE n:3f:.. factRic (1) n:3f:.. factRic (2) n:2f:.. factRic n:3f:.. factRic (3) n:2f:.. factRic n:1f:.. factRic n:3f:.. factRic (4) n:2f:.. factRic n:1f:.. factRic n:0f:.. factRic n:3f:.. factRic (5) n:2f:.. factRic n:1f:.. factRic n:0f:1 factRic n:3f:.. factRic (6) n:2f:.. factRic n:1f:1 factRic n:3f:.. factRic (7) n:2f:2 factRic Ambienti locali gestiti in modo LIFO (Last In First Out) Cancellati in ordine inverso a quello un cui sono stati creati Si usa una struttura di dati detta PILA Gestione a pila degli ambienti locali delle funzioni 25

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE n:3f:.. factRic (1) n:3f:.. factRic (2) n:2f:.. factRic n:3f:.. factRic (3) n:2f:.. factRic n:1f:.. factRic n:3f:.. factRic (4) n:2f:.. factRic n:1f:.. factRic n:0f:.. factRic n:3f:.. factRic (5) n:2f:.. factRic n:1f:.. factRic n:0f:1 factRic n:3f:.. factRic (6) n:2f:.. factRic n:1f:1 factRic n:3f:.. factRic (7) n:2f:2 factRic n:3f:6 factRic (8) Ambienti locali gestiti in modo LIFO (Last In First Out) Cancellati in ordine inverso a quello un cui sono stati creati Si usa una struttura di dati detta PILA Gestione a pila degli ambienti locali delle funzioni 26

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Altri esempi di funzioni ricorsive I numeri di Fibonacci (dinamiche di popolazione) Il Massimo Comun Divisore (algoritmo di Euclide) Il problema delle torri di Hanoi 27

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEFibonacci Leonardo Fibonacci  Matematico italiano  Compie numerosi viaggi e assimila le conoscenze matematiche del mondo arabo,  Nel 1202 pubblica: il Liber abaci  Con Liber abaci si propose di diffondere nel mondo scientifico occidentale le regole di calcolo note agli Arabi il sistema decimale 28

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il problema dei “conigli” “Un tale mise una coppia di conigli in un luogo completamente circondato da un muro, per scoprire quante coppie di conigli discendessero da questa in un anno: per natura le coppie di conigli generano ogni mese un'altra coppia e cominciano a procreare a partire dal secondo mese dalla nascita.” L. Fibonacci da Liber Abaci 29

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE I numeri di Fibonacci Idea di base 1) fib(n)=1 se n=0 opp. n=1 2) fib(n)= fib(n-1) + fib(n-2) se n>1 30

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE I numeri di Fibonacci 1) fib(n)=1 se n=0 opp. n=1 2) fib(n)= fib(n-1) + fib(n-2) se n>1 Vengono usati per modellare la crescita di animali per diverse generazioni function [f]=fib (n) if n==1 | n==2 f = 1; else f = fib(n - 2) + fib(n - 1); end 31

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il MCD Definizione: 1) MCD(m,n)=m se m=n 2a) MCD(m,n)= MCD(m-n,n) se m>n 2b) MCD(m,n)=MCD(m,n-m) se n>m esempio: MCD(21,56) = MCD(21,35) = MCD(21,14)= = MCD(7,14) = MCD(7,7) = 7 32

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE IL MCD Iterativo: function [M]=MCDeuclid(m,n) while m ~= n if m>n m=m-n; else n=n-m; end M=m; 33

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE IL MCD Iterativo: function [M]=MCDeuclid(m,n) while m ~= n if m>n m=m-n; else n=n-m; end M=m; Ricorsivo: function [M]=MCDeuclidRic(m,n) if m==n M=m; else if m>n M = MCDeuclidRic(m-n,n); else M = MCDeuclidRic(m,n-m); end Attenzione alla condizione di terminazione!!!!! N.B. è sempre possibile trovare un corrispondente iterativo di un programma ricorsivo!!! 34

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEPausa… 35

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Un problema interessante: La torre di Brahma 36

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE La leggenda Narra la leggenda che all'inizio dei tempi, Brahma portò nel grande tempio di Benares, sotto la cupola d'oro che si trova al centro del mondo, tre colonnine di diamante e sessantaquattro dischi d'oro, collocati su una di queste colonnine in ordine decrescente, dal più piccolo in alto, al più grande in basso. E' la sacra Torre di Brahma che vede impegnati, giorno e notte, i sacerdoti del tempio nel trasferimento della torre di dischi dalla prima alla terza colonnina. Essi non devono contravvenire alle regole precise, imposte da Brahma stesso, che richiedono di spostare soltanto un disco alla volta e che non ci sia mai un disco sopra uno più piccolo. Quando i sacerdoti avranno completato il loro lavoro e tutti i dischi saranno riordinati sulla terza colonnina, la torre e il tempio crolleranno e sarà la fine del mondo. Quando i sacerdoti avranno completato il loro lavoro e tutti i dischi saranno riordinati sulla terza colonnina, la torre e il tempio crolleranno e sarà la fine del mondo. 37

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Le torri di Hanoi Problema: spostare tutti i dischi dalla torre A alla torre B (usando la torre C come “supporto intermedio”) in modo che si trovino nello stesso ordine 38

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Le torri di Hanoi Scriveremo una funzione ricorsiva che prende come parametro il numero del disco più grande che vogliamo spostare (da 0 a 5 come nel disegno) La funzione prenderà anche tre parametri che indicano:  da quale asta vogliamo partire (source),  a quale asta vogliamo arrivare (dest),  l’altra asta, che possiamo usare come supporto temporaneo (spare). 39

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE L’idea di base Voglio spostare n anelli dal piolo sorgente, a quello destinazione, usando come appoggio il piolo ausiliario  Devo quindi prima spostare n - 1 anelli dal sorgente all'ausiliario, usando come appoggio il piolo destinazione  Poi sposto l'unico anello rimasto dal sorgente al piolo destinazione  Infine sposto gli n - 1 anelli che si trovano sull'ausilliario all'anello destinazione.. 40

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE L’uso della ricorsione Quando si spostano gli n - 1 anelli la funzione hanoi richiama se stessa, cioè effettua una chiamata ricorsiva, semplificando però il problema perché bisogna spostare un numero di anelli inferiore. In pratica, con la ricorsione il problema viene continuamente ridotto di complessità fino alla soluzione banale in cui rimane solo un anello, che viene semplicemente spostato nel piolo destinazione. 41

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Le torri di Hanoi: strategia Ridurremo il problema a quello di spostare 5 dischi dalla torre C alla torre B, dopo che il disco 5 è stato già messo nella posizione giusta 42

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Le torri di Hanoi: pseudocodice FUNCTION MoveTower(disk, source, dest, spare): IF disk == 0, THEN: move disk from source to dest ELSE: MoveTower(disk - 1, source, spare, dest) /* (Passo 1) */ move disk from source to dest // /* (Passo 2) */ MoveTower(disk - 1, spare, dest, source) // /* (Passo 3) */ END IF Nota: l’algoritmo aggiunge un caso base: quando il disco è il più piccolo (il numero 0). In questo caso possiamo muoverlo direttamente perché non ne ha altri sopra. Negli altri casi, seguiamo la procedura descritta per il disco 5. 43

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Soluzione in codice MATLAB con simulazione function []=hanoi(n, da, a, per) if (n>1) hanoi(n-1, da, per, a); end; fprintf('\n sposta un disco dal piolo %d al piolo %d \n', da, a); if (n>1) hanoi(n-1, per, a, da); end; >> hanoi(3, 1, 2, 3) sposta un disco dal piolo 1 al piolo 2 sposta un disco dal piolo 1 al piolo 3 sposta un disco dal piolo 2 al piolo 3 sposta un disco dal piolo 1 al piolo 2 sposta un disco dal piolo 3 al piolo 1 sposta un disco dal piolo 3 al piolo 2 sposta un disco dal piolo 1 al piolo 2 >> hanoi(3, 1, 2, 3) hanoi(2, 1, 3, 2)hanoi(2, 3, 2, 1) hanoi(1, 1, 2, 3)hanoi(1, 2, 3, 1)hanoi(1, 3, 1, 2)hanoi(1, 1, 2, 3) 44

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Fonti per lo studio + Credits Fonti per lo studio  Introduzione alla programmazione in MATLAB, A.Campi, E.Di Nitto, D.Loiacono, A.Morzenti, P.Spoletini, Ed.Esculapio Capitolo 4 –Particolare attezione al 4.5 Credits  Prof W. Fornaciari  Prof. A. Morzenti 45