• Non ci sono risultati.

Lezione del 10 marzo 2008 Divisori e massimo comune divisore.

N/A
N/A
Protected

Academic year: 2021

Condividi "Lezione del 10 marzo 2008 Divisori e massimo comune divisore."

Copied!
1
0
0

Testo completo

(1)

Lezione del 10 marzo 2008

Divisori e massimo comune divisore.

Dati 2 numeri naturali a,b diremo che b è divisore di a (equivalentemente che a è multiplo di b) e scriveremo il simbolo bïa, se esiste un numero intero relativo c tale che a=bc (notare che c è un numero naturale, essendo a,b>0).

Dati dunque a,bN , per testare se bïa basta effettuare la divisione di a per b, calcolare quoziente q e resto r, e verificare se r=0: si ha infatti bïa  r=0 ( è ovvia;  deriva dall’osservazione che se a=bc=bc+0=bq+r, si ha r=0, per l’unicità del resto).

Quindi il test di divisibilità per i numeri naturali si può effettuare con un algoritmo (quello della divisione) di complessità quadratica O(n2) (se n=L(a), con ab: ovviamente se a<b è certamente falso che bïa).

Dati 2 numeri naturali a,b chiameremo massimo comune divisore di a,b un numero naturale d tale che dïa, dïb (cioè d è divisore comune di a,b) e inoltre d è multiplo di tutti i numeri naturali divisori comuni di a,b.

La seconda proprietà garantisce che d è il più grande dei naturali divisori comuni di a,b ed in particolare è unico (se esiste): scriveremo allora d=mcd(a,b).

Teorema dell’esistenza del mcd(a,b):

Comunque dati 2 numeri naturali a,b esiste d=mcd(a,b).

Dimostrazione.

Consideriamo l’insieme di tutti i numeri naturali che sono “combinazioni lineari” di a,b a coefficienti interi relativi: S={c / c>0, c=ax+by, dove x,yZ}.

Tale insieme è non vuoto (almeno a=a1+b0S): sia d il minimo in S.

In particolare d=ax+by, dove x,yZ.

Verifichiamo che d =mcd(a,b).

Per verificare se dïa dividiamo a per d, ottenendo quoziente q e resto r tali che a=dq+r, con r<d, e dimostriamo che r=0. Se per assurdo fosse r>0, sarebbe r=a-dq=a(1-xq)+b(-yq)S, r<d, contraddizione.

Analogamente si verifica che dïb.

Se inoltre d0 è un naturale divisore comune di a,b allora esistono numeri naturali s,t tali che d0s=a, d0t=b, da cui d=ax+by=d0(sx+ty) cioé d0 è divisore di d.

Nota: nella dimostrazione precedente si è anche notato che d=mcd(a,b) è una combinazione lineare della forma d=ax+by, per opportuni coefficienti x,yZ . Tali coefficienti x,y non sono univocamente determinati: per esempio per ogni intero relativo k si ha ax+by=a(x+kb)+b(y-ka).

Due numeri naturali a,b sono detti coprimi o relativamente primi se mcd(a,b)=1, o equivalentemente se 1 è l’unico loro divisore comune.

Proprietà elementari:

1) Se 1=ax+by è combinazione lineare di a,b con coefficienti interi relativi x,y, allora a,b sono coprimi.

Basta infatti ricordare che il mcd(a,b) è la minima delle combinazioni lineari >0 di a,b, quindi certamente 1=mcd(a,b).

2) Due numeri naturali consecutivi a, b=a+1 sono sempre coprimi.

Basta osservare che 1=a(-1)+b1 e applicare la 1).

3) Dividendo due numeri naturali a,b per il loro massimo comune divisore d=mcd(a,b) si ottengono due numeri naturali coprimi.

(2)

Infatti posto d=ax+by (con x,y interi relativi), si ha 1=(a/d)x+(b/d)y, e applicando la 1) si ottiene che a/d, b/d sono coprimi.

4) Dati 3 numeri naturali a,b,c, se aï(bc) e se a,b sono coprimi allora aïc.

Infatti, posto bc=ad, con dN, ed 1=mcd(a,b)=ax+by, con x,yZ, si ha c=acx+bcy=a(cx+dy).

5) Dati 3 numeri naturali a,b,c, se aïc, bïc, e se a,b sono coprimi allora (ab)ïc .

Infatti, posto c=ar=bs, con r,s N, ed 1=mcd(a,b)=ax+by, con x,yZ, si ha c=acx+bcy=ab(sx+ry).

Lemma:

Dati 2 numeri naturali a,b ed effettuata la divisione con quoziente e resto di a per b : a=bq+r

si ha:

1) se r=0 (cioè se bïa) allora mcd(a,b)=b 2) se r>0 allora mcd(a,b)=mcd(b,r) Dimostrazione.

La dimostrazione di 1),2) segue facilmente dalla definizione di massimo comune divisore.

Illustriamo un algoritmo per calcolare d=mcd(a,b), dati i numeri naturali a,b: è il cosiddetto algoritmo Euclideo delle divisioni successive.

Esso consiste nei seguenti passi:

1) Si divide a per b trovando quoziente e resto

2) Si effettuano successive divisioni con il seguente criterio: ogni volta che una divisione ha resto non nullo, si effettua una successiva divisione prendendo come dividendo e divisore rispettivamente divisore e resto della precedente divisione. L’algoritmo si ferma quando si ottiene una divisione con resto nullo

3) Il resto (non nullo) della penultima divisione è il mcd(a,b).

Schematizzando l’algoritmo:

a=bq1+r1 (q10, 0<r1<b) b=r1q2+r2 (q20, 0<r2<r1) r1=r2q3+r3 (q30, 0<r3<r2) .

.

rn-3=rn-2qn-1+rn-1 (qn-10, 0<rn-1<rn-2) rn-1=mcd(a,b) rn-2=rn-1qn+rn (qn0, rn=0)

Output: rn-1=mcd(a,b)

Prima di tutto osserviamo che l’algoritmo si ferma dopo un numero finito di divisioni : infatti la successione dei resti è decrescente, e se per assurdo si ottenessero sempre resti>0, il loro insieme sarebbe un sottoinsieme di N senza minimo, contro l’assioma del minimo.

Inoltre effettivamente rn-1=mcd(a,b), perché applicando più volte il precedente Lemma si ha:

mcd(a,b)=mcd(b,r1)=mcd(r1,r2)=….=mcd(rn-2,rn-1)=rn-1 .

Calcoleremo la complessità dell’algoritmo Euclideo: poiché ogni passo dell’algoritmo consiste in una divisione (di complessità quadratica O(k2) dove k è la lunghezza dell’input a, supponendo a>b) è ovvio come sia necessario dare una stima (nel caso peggiore) del numero n delle divisioni effettuate nell’algoritmo.

Riferimenti

Documenti correlati

Possiamo supporre che la codifica elementare M del nostro messaggio sia &lt; m, altrimenti spezziamo il messaggio in pi` u parti. I numeri n ed e possono, per esempio, comparire

In pratica tale procedimento continua con una successiva divisione solo se il quoziente della precedente divisione è non nullo, e nella successiva divisione il dividendo

2) Si effettuano successive divisioni con il seguente criterio: ogni volta che una divisione ha resto non nullo, si effettua una successiva divisione prendendo come dividendo e

In pratica tale procedimento continua con una successiva divisione solo se il quoziente della precedente divisione è non nullo: nella successiva divisione il dividendo coincide con

In pratica tale procedimento continua con una successiva divisione solo se il quoziente della precedente divisione è non nullo: nella successiva divisione il dividendo coincide con

Dati i numeri naturali a,b chiameremo massimo comune divisore di a,b un numero naturale d tale che dïa, dïb (cioè d è divisore comune di a,b) e inoltre d è multiplo di tutti

In pratica tale procedimento continua con una successiva divisione solo se il quoziente della precedente divisione è non nullo: nella successiva divisione il dividendo coincide con

Dati i naturali a,b definiamo combinazione lineare di a,b a coefficienti interi relativi un qualunque numero intero relativo della forma ax+by dove i numeri