Sei sulla pagina 1di 19

4^EI INFORMATICA

Lezione 1a
MCD secondo Euclide
IN QUESTA PRESENTAZIONE

01 03
Euclide Una
implementazione

02
L’algoritmo
di calcolo
del MCD
01
EUCLIDE
EUCLIDE

PERCHÉ PARLARE DI EUCLIDE


○ Fu uno dei maggior matematici
dell’antichità, che seppe mettere
insieme tutti i saperi della sua
opera in un solo testo: Elementi
(300 a.C.) di ben 13 volumi!
EUCLIDE

PERCHÉ PARLARE DI EUCLIDE


○ Pose le basi della matematica,
così come noi oggi ancora la
studiamo a scuola (anche il
concetto di MCD!)
02
L’ALGORITMO
DI CALCOLO DEL MCD
L’ALGORITMO DI CALCOLO DEL MCD

L’IDEA INIZIALE
○ L'algoritmo originale di Euclide si
occupa di calcolare il Massimo
Comune Divisore di due interi
positivi

○ È basato su sottrazioni successive.


L’ALGORITMO DI CALCOLO DEL MCD

L’IDEA INIZIALE
○ L'algoritmo, nella sua versione più
semplice, si fonda sulla seguente
proprietà:
Se due numeri, m, n, sono divisibili
per un terzo numero, x, allora anche
la loro differenza è divisibile per x.
L’ALGORITMO DI CALCOLO DEL MCD

LA DIMOSTRAZIONE
Per dimostrare il funzionamento
dell'algoritmo, si può utilizzare la
proprietà distributiva.
1. Dati m e n interi, supponiamo m >
n.
2. Definiamo
m = k*x e n = h*x
supponendo quindi che vi sia un x
che li divida entrambi
L’ALGORITMO DI CALCOLO DEL MCD

LA DIMOSTRAZIONE

3. Allora, vale evidentemente anche


m - n = kx - hx = x * (k-h)
4. Conclusione:
Si può dunque dire che:
MCD(m,n) = MCD((m-n), n)
L’ALGORITMO DI CALCOLO DEL MCD

LA DIMOSTRAZIONE

Questa regola permette di passare, per


mezzo di sottrazioni successive, al
calcolo di MCD di numeri sempre più
piccoli, fino ad ottenere:
MCD(a, 0) = a
Es: MCD(12, 9) = MCD((12-9), 9) =
= MCD(9, 3) = MCD((9-3), 3) = MCD(6, 3) =
= MCD ((6-3),3) = MCD(3, 3) =
= MCD((3-3), 3) = MCD(3, 0) = 3
“Ciò che può essere affermato
senza prova, può essere negato
senza prova.”

— EUCLIDE
L’ALGORITMO DI CALCOLO DEL MCD

L’APPLICAZIONE

L'algoritmo, in forma di pseudocodifica,


può essere scritto così:
MCD (m, n)
Inizio

Assegna tmp = 0

Ripeti finché n > 0

Se n > m allora

Assegna tmp = m

Assegna m = n
L’ALGORITMO DI CALCOLO DEL MCD

L’APPLICAZIONE

Assegna n = tmp

Fine se

Calcola m = m - n

Fine ripeti

Scrivi MCD è m

Fine

N.B.: le uniche operazioni coinvolte in


modifica sono sottrazioni e scambi,
ripetuti!
03
L’IMPLEMENTAZIONE
L’IMPLEMENTAZIONE

MCD DI EUCLIDE IN PYTHON

In Python possiamo realizzare una


semplice funzione per avere a
disposizione il nostro calcolo e
richiamarlo secondo necessità.
def mcd(m, n):

while n > 0:

if n > m:

m, n = n, m
L’IMPLEMENTAZIONE

MCD DI EUCLIDE IN PYTHON


m = m - n

return m

a = 10

b = 15

ris = MCD(a, b)

N.B.: non è necessario usare una variabile


di supporto, perché nel linguaggio è
consentito lo scambio diretto di valori in
una coppia di variabili mediante uso di
tuple
L’IMPLEMENTAZIONE

MCD DI EUCLIDE IN PYTHON


m = m - n

return m

a = 10

b = 15

ris = mcd(a, b)
Vedremo
presto N.B.: non è necessario usare una variabile
cosa di supporto, perché nel linguaggio è
siano consentito lo scambio diretto di valori in
una coppia di variabili mediante uso di
tuple
FINE
Grazie a coloro che hanno creato
queste risorse per un uso gratuito!

CREDITS: This presentation template was created by


Slidesgo, incluiding icons by Flaticon, and
infographics & images by Freepik.

Potrebbero piacerti anche