Fondamenti di Informatica - Università degli studi di Parma
Fondamenti di Informatica - Università degli studi di Parma
Fondamenti di Informatica - Università degli studi di Parma
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