11.07.2014 Views

Fondamenti di Informatica - Università degli studi di Parma

Fondamenti di Informatica - Università degli studi di Parma

Fondamenti di Informatica - Università degli studi di Parma

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Il crivello <strong>di</strong> Eratostene: esempio<br />

Il crivello <strong>di</strong> Erastone<br />

• Sequenza iniziale (da 2 a 20):<br />

2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19,20<br />

2 e’ primo lo elimino con tutti i suoi multipli:<br />

3,5,7,9,11,13,15,17,19<br />

3 e’ primo lo elimino con tutti i suoi multipli:<br />

5,7,11,13,17,19<br />

5 e’ primo lo elimino con tutti i suoi multipli:<br />

…<br />

19 e’ primo, la sequenza e’ vuota, termino.<br />

• Algoritmo<br />

q Finito<br />

q Non ambiguo<br />

q Realizzabile<br />

q Efficiente (si spera)<br />

FI - Algoritmi e Programmazione 13<br />

FI - Algoritmi e Programmazione 14<br />

Algoritmo <strong>di</strong> Euclide<br />

Algoritmo <strong>di</strong> Euclide<br />

• Calcola il massimo comun <strong>di</strong>visore fra due<br />

interi positivi m ed n (supponiamo che n =<br />

m, altrimenti li possiamo scambiare).<br />

• L’ algoritmo si compone <strong>di</strong> 3 passi ripetuti<br />

ciclicamente fino ad una con<strong>di</strong>zione <strong>di</strong><br />

arresto:<br />

• Passo E1 {ricerca del resto} : Sia m = n. Si<br />

<strong>di</strong>vide m per n. Sia r il resto. Allora 0 =<br />

r < n.<br />

• Passo E2 {r = 0?} : Se r = 0 l’ algoritmo e’<br />

terminato e n e’ la risposta finale.<br />

• Passo E3 {scambio} : Se r ? 0 si operano gli<br />

scambi m ? n e n ? r. Si torni al passo E1.<br />

FI - Algoritmi e Programmazione 15<br />

FI - Algoritmi e Programmazione 16<br />

Algoritmo <strong>di</strong> Euclide: esempio<br />

Si voglia l’ MCD fra 30 e 45 (I due numerivanno scambiati)<br />

m<br />

n<br />

r<br />

45<br />

30<br />

15<br />

30<br />

15<br />

0<br />

Algoritmo <strong>di</strong> Euclide: finitezza<br />

• Poiche’ al passo E1 {ricerca del resto} si ha<br />

senpre 0 = r < n, ad ogni scambio il valore <strong>di</strong><br />

n decresce.<br />

• Dopo un numero finito <strong>di</strong> passi si<br />

raggiungera` la con<strong>di</strong>zione r = 0, e la<br />

terminazione dell’ algoritmo.<br />

Poiche’ il restor = o, l’ultimovalore per n e’ l’ MCD<br />

FI - Algoritmi e Programmazione 17<br />

FI - Algoritmi e Programmazione 18

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!