La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 21 Agosto.

Presentazioni simili


Presentazione sul tema: "DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 21 Agosto."— Transcript della presentazione:

1 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 21 Agosto 2014

2 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Massimo Comune Divisore Definizione  Dicesi Massimo Comune Divisore (M.C.D.) il piu’ grande tra i divisori comuni a due o piu’ numeri Il nostro problema:  Dati due numeri interi, si trovi il MCD 2

3 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Parte 0/4: La brutta notizia! Abbiamo un problema!!!!  Dati due numeri interi, si trovi il MCD 3 how to solve it di Poyla G. - http://math.hawaii.edu/home/pdf/putnam/PolyaHowToSolveIt.pdf

4 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come realizzare un algoritmo Parte 1/4: Capire il problema  Quale e’ il problema generale che si scerca di risolvere? 4

5 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Parte 1/4: Capire il problema Abbiamo un solo problema?  Dati due numeri interi, si trovi il MCD P1: Ci servono due numeri interi P2: Dobbiamo trovare il MCD di due numeri 5

6 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Abbiamo solo P1 e P2? Dati due numeri interi, si trovi il MCD P1: Ci servono due numeri interi  P1.1: Ci servono due scatole per salvare i due numeri  P1.2: I numeri devono essere maggiori uguali a 1 P2: Dobbiamo trovare il MCD di due numeri  P2.1: Dobbiamo trovare tutti i divisori di un numero (X)  P2.2: Dobbiamo trovare tutti i numeri {C} in comune a due sequenze {S1, S2} di numeri  P2.3: Dobbiamo trovare il maggiore tra N numeri 6

7 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come realizzare un algoritmo Parte 2/4: Fare/creare un piano  Ci possono essere diverse strategie per risolvere lo stesso problema Ipotizzare e verificare Cercare dei pattern Risolvere problemi più piccoli Disegnare uno schema 7

8 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Parte 2/4: Fare/creare un piano Dati due numeri interi, si trovi il MCD P1: Ci servono due numeri interi  P1.1: Ci servono due scatole per salvare i due numeri  P1.2: I numeri devono essere maggiori uguali a 1 P2: Dobbiamo trovare il MCD di due numeri  P2.1: Dobbiamo trovare tutti i divisori di un numero (X)  P2.2: Dobbiamo trovare tutti i numeri {C} in comune a due sequenze {S1, S2} di numeri  P2.3: Dobbiamo trovare il maggiore tra N numeri 8

9 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE P1: Fare/creare un piano P1: Ci servono due numeri interi  P1.1: Ci servono due scatole per salvare i due numeri Di che tipo sono i numeri che ci servono?  P1.2: I numeri devono essere maggiori uguali A 1 Come facciamo a garantire che il numero inserito sia maggiore uguale a 1? 9

10 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE P1.2: Fare/creare un piano P1.2: I numeri devono essere maggiori uguale a 1  Come facciamo a garantire che il numero inserito sia maggiore uguale a 1? A.Inserisci il numero B.Il numero è maggiore o uguale a 1 a.Se si FINE b.Se no, torna a A 10

11 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE P1.2: Chiariamo meglio… P1.2: I numeri devono essere maggiori uguale a 1  Come facciamo a garantire che il numero inserito sia maggiore uguale a 1? A.Inserisci il numero B.Finché Il numero è minore di 1, torna ad A 11

12 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE P1.1+P1.2: P1 risolto 1.P1.1: Leggo un dato intero N1 2.P1.2: Finché N1 è minore di 1, torna ad 1 3.P1.1: Leggo un dato intero N2 4.P1.2: Finché N2 è minore di 1, torna ad 3 12

13 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE P2: Fare/creare un piano P2: Dobbiamo trovare il MCD di due numeri  P2.1: Dobbiamo trovare tutti i divisori di un numero (X)  P2.2: Dobbiamo trovare tutti i numeri {C} in comune a due sequenze {S1, S2} di numeri  P2.3: Dobbiamo trovare il maggiore tra N numeri 13

14 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE P2.1: Fare/creare un piano P2.1: Dobbiamo trovare tutti i divisori di un numero (X)  Definisco D come numero che varia tra 1 e X Dati X e D, interi positivi se X/D da resto 0, – D è divisore di X 14

15 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE P2.2: Fare/creare un piano P2.2: Dobbiamo trovare tutti i numeri {C} in comune a due sequenze {S1, S2} di numeri  Dato X1 appartenente a S1  Dato X2 appartenente a S2  Se X1 è uguale a X2 allora il valore è comune a S1 e S2 15

16 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE P2.3: Chiariamo meglio… P2.3: Dobbiamo trovare il maggiore tra N numeri 1.Il maggiore è il primo numero di N 2.Vi è un altro numero in N? A.Si a.Confronto il maggiore con il successivo b.Il successivo è maggiore? c.Si: il maggiore diventa il successivo d.Vado a 2 B.No: vado a 3 3.Il maggiore è maggiore 16

17 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE P2.3: Fare/creare un piano P2.3: Dobbiamo trovare il maggiore tra N numeri 1.Il maggiore è il primo numero di N 2.Finché vi sono numeri in N? a.Confronto il maggiore con il successivo b.Il successivo è maggiore? c.Si: il maggiore diventa il successivo d.Vado a 2 3.Il maggiore è maggiore 17

18 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE P2.1+P2.2: Fare/creare un piano P2.1: Dobbiamo trovare tutti i divisori di un numero P2.2: Dobbiamo trovare tutti i numeri {C} in comune a due sequenze {S1, S2} di numeri 18 Come sono i numeri in {C}? (P2.2) Sono divisori di un numero! (P1.1)

19 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE P2.1+P2.2: Ricordiamo… P2.1: Dobbiamo trovare tutti i divisori di un numero (X)  Definisco D come numero che varia tra 1 e X Dati X e D, interi positivi se X/D da resto 0, D è divisore di X P2.2: Dobbiamo trovare tutti i numeri {C} in comune a due sequenze {S1, S2} di numeri  Dato D1 appartenente a S1  Dato D2 appartenente a S2  Se D1 è uguale a D2 allora il valoro è comune a S1 e S2 19

20 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE P2.1+P2.2: ma quindi… Dati due numeri N1 e N2 P2.1: D1 divide N1 (appartiene a S1) P2.1: D2 divide N2 (appartiene a S2) P2.2: D1 è uguale a D2?  SI: D1 (o D2) è un divisore comune a N1 e a N2 20 Se D1 è maggiore di N2? Se D2 è maggiore di N1?

21 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE P2.1+P2.2: e ancora… Dati due numeri N1 e N2 X = 1 Finché X è minore o uguale a N1 e a N2  P2.1: X divide N1? e X divide N2? SI: P2.2 X è divisore comune a N1 e a N2  Incremento X 21 E cosa facciamo a P2.3?

22 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE P2.3: Fare/creare un piano P2.3: Dobbiamo trovare il maggiore tra N numeri 1.Il maggiore è il primo numero di N 2.Finché vi sono numeri in N? a.Confronto il maggiore con il successivo b.Il successivo è maggiore? c.Si: il maggiore diventa il successivo d.Vado a 2 3.Il maggiore è maggiore 22 E se gli N numeri fossero ordinati in ordine crescente?

23 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE P2.3: Numeri ordinati P2.3: Dobbiamo trovare il maggiore tra N numeri 1.Il maggiore è l’ultimo numero di N 23 Essendo ordinati in ordine crescente Ogni successero è maggiore del precedente Come usiamo questa idea?

24 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEP2.1+P2.2+P2.3 Dati due numeri N1 e N2 X = 1 Finché X è minore o uguale a N1 e a N2  P2.1: X divide N1? e X divide N2? SI: P2.2 X è divisore comune a N1 e a N2  Incremento X P2.3: Dobbiamo trovare il maggiore tra N numeri 24 Come varia X?In ordine crescente :)

25 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE P2: risolto Dati due numeri N1 e N2 X = 1 e TMP = 1 Finché X è minore o uguale a N1 e a N2  P2.1: X divide N1? e X divide N2? SI: –P2.2: X è divisore comune a N1 e a N2 –P2.3: TMP = X  Incremento X TMP è il MCD 25

26 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE P1 + P2: mettiamo tutto insieme 1.P1.1: Leggo un dato intero N1 2.P1.2: Finché N1 è minore di 1, torna ad 1 3.P1.1: Leggo un dato intero N2 4.P1.2: Finché N2 è minore di 1, torna ad 3 5.X = 1 e TMP = 1 6.Finché X è minore o uguale a N1 e a N2 1.P2.1: X divide N1? e X divide N2? 1.SI: 1.P2.2: X è divisore comune a N1 e a N2 2.P2.3: TMP = X 2.Incremento X 7.TMP è il MCD 26

27 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come realizzare un algoritmo Parte 3/4: Portare avanti il piano  Mettere in azione il vostro piano!  Rimanere sul piano deciso a meno che non vi siano evidenti motivi per credere che esso non funzionerà più La pazienza è il vostro miglior alleato 27

28 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Parte 3/4: Portare avanti il piano 1.P1.1: Leggo un dato intero N1 2.P1.2: Finché N1 è minore di 1, torna ad 1 3.P1.1: Leggo un dato intero N2 4.P1.2: Finché N2 è minore di 1, torna ad 3 5.X = 1 e TMP = 1 6.Finché X è minore o uguale a N1 e a N2 1.P2.1: X divide N1? e X divide N2? 1.SI: 1.P2.2: X è divisore comune a N1 e a N2 2.P2.3: TMP = X 2.Incremento X 7.TMP è il MCD 28 Quante e quali variabili ci servono?

29 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Parte 3/4: Portare avanti il piano 29 Quante e quali variabili ci servono?

30 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Parte 3/4: Portare avanti il piano 1.P1.1: Leggo un dato intero N1 2.P1.2: Finché N1 è minore di 1, torna ad 1 30

31 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Parte 3/4: Portare avanti il piano 5. X = 1 e TMP = 1; 31

32 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Definisco la condizione 32 A: X <= N1 B: X <= N2 6. Finché X è minore o uguale a N1 e a N2 A B uscita 0 0 0 0 1 0 1 0 0 11 1 6. Finché ((X<=N1) AND (X<=N2))

33 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Parte 3/4: Portare avanti il piano 6. Finché X è minore o uguale a N1 e a N2 1.P2.1: X divide N1? e X divide N2? 1.SI: 1.P2.2: X è divisore comune a N1 e a N2 2.P2.3: TMP = X 2.Incremento X 33

34 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni equivalenti 1 34 A: N1%X B: 0 A B uscita 0 0 0 !0 0 1 uscita è identica ad A uscita = A NO!!!!!

35 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Vediamo il codice 35

36 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Vediamo il codice: debug 36

37 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Vediamo il codice: debug 37

38 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni equivalenti 1: corretta 38 A: N1%X B: 0 A B uscita 0 0 1 !0 0 0 uscita è identica all’inverso di A uscita = !A

39 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni equivalenti 2 39 è equivalente a

40 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Parte 3/4: Portare avanti il piano 1.P1.1: Leggo un dato intero N1 2.P1.2: Finché N1 è minore di 1, torna ad 1 3.P1.1: Leggo un dato intero N2 4.P1.2: Finché N2 è minore di 1, torna ad 3 5.X = 1 e TMP = 1; 6.Finché X è minore o uguale a N1 e a N2 1.P2.1: X divide N1? e X divide N2? 1.SI: 1.P2.2: X è divisore comune a N1 e a N2 2.P2.3: TMP = X 2.Incremento X 7.TMP è il MCD 40

41 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MCD: Finito… 41

42 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come realizzare un algoritmo Parte 4/4: Ragionare e comprendere  Comprendere quello che si è fatto e dove l’algoritmo individuato possa essere applicato al meglio La pratica è fondamentale! 42

43 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma scusate… N1 = 200000 N2 = 100000 43 Vogliamo veramente partire da 1 Finché ((X<=N1) AND (X<=N2)) ??????

44 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE P2: risolto Dati due numeri N1 e N2 X = 1 e TMP = 1 Finché X è minore o uguale a N1 e a N2  P2.1: X divide N1? e X divide N2? SI: –P2.2: X è divisore comune a N1 e a N2 –P2.3: TMP = X  Incremento X TMP è il MCD 44

45 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tornado nel passato… 45

46 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE P2: risolto Dati due numeri N1 e N2 X = min (N1,N2) Finché P2.1: X non divide N1 e N2  Decremento X P2.2 e P2.3: X è divisore comune a N1 e a N2 46

47 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Definisco la condizione 47 A: N1%X B: N2%X Finché X non divide N1 e N2 A B uscita 0 0 1 0 1 0 1 0 0 11 0 Finché !(!(N1%x) AND !(N2%X))

48 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Definisco la condizione 48 A B !A !B (!A && !B) !(!A && !B) 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 Continuo finché 1

49 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MCD: Finito! 49


Scaricare ppt "DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 21 Agosto."

Presentazioni simili


Annunci Google