Matematica Discreta I Lezione del giorno 9 novembre 2007 Ricordiamo che nel corso della dimostrazione del Teorema di esistenza del mcd(a,b) si è anche dimostrato che il mcd(a,b) è combinazione lineare dei numeri a,b con coefficienti interi relativi, dunque esistono 2 opportuni numeri interi relativi x,y tali che mcd(a,b)=ax+by. Problema: Dati i numeri naturali a, b, come calcolare il mcd(a,b), e come calcolare gli interi relativi x,y tali che mcd(a,b)=ax+by ? La soluzione è nell’Algoritmo Euclideo delle divisioni successive. Premettiamo un risultato preliminare: Teorema. Siano a,b numeri naturali e dividiamo a per b: a=bq+r con q, r interi 0, ed r<b. Allora: 1) se r>0 si ha mcd(a,b)=mcd(b,r) 2) se r=0 si ha mcd(a,b)=b Dimostrazione: 1) Supponiamo r>0 e poniamo d=mcd(a,b). La tesi è che d=mcd(b,r). Dimostriamo dapprima che r è divisore comune di a,b. Essendo d=mcd(a,b), sappiamo già che da, db (quindi esistono numeri naturali c,v tali che a=dc, b=dv); essendo già vero che db , si deve solo dimostrare che dr: ma r=a-bq=dc-dvq=d(c-vq) quindi dr. Resta poi da dimostrare che d è multiplo di ogni divisore comune z di b, r: ma in questo caso esistono numeri naturali f,g tali che b=zf, r=zg, da cui si ricava a=bq+r=zfq+zg=z(fq+g) ossia za, quindi z è divisore comune di a, b. Ma per ipotesi d=mcd(a,b) quindi d è multiplo di tutti i divisori comuni di a, b, e si conclude in particolare che d è multiplo di z, come si voleva. 2) Supponiamo r=0 e dimostriamo la tesi mcd(a,b)=b. Ovviamente b è divisore sia di a (perché a=bq) che di b (perché (b=b1), dunque è divisore comune di a, b. Resta da verificare che b è multiplo di ogni divisore comune z di a, b: ma ciò è ovvio, perché, essendo z divisore di b, si ha che b è multiplo di z . Algoritmo Euclideo delle divisioni successive: L’algoritmo consiste in una successione di divisioni effettuate secondo le regole seguenti: 1) La prima divisione si ottiene dividendo a per b. 2) Data una generica divisione dell’algoritmo, la divisione successiva si effettua solo se il resto della precedente è>0, e nella divisione successiva il dividendo coincide con il divisore della divisione precedente, mentre il divisore coincide con il resto della divisione precedente. 3) L’algoritmo ha termine quando una divisione ha resto =0. Schematizzando: divisione 1 (se r1>0) divisione 2 (se r2>0) divisione 3 (se r3>0) divisione 4 ………. etc. a=bq1+r1 b=r1q2+r2 r1=r2q3+r3 r2=r3q4+r4 con q1,r1 interi 0, r1<b con q2,r2 interi 0, r2<r1 con q3,r3 interi 0, r3<r2 con q4,r4 interi 0, r4<r3 Osserviamo che l’algoritmo ha termine dopo un numero finito di divisioni: se infatti per assurdo così non fosse, si otterrebbe una successione infinita di divisioni tutte con resto >0, ma, essendo i resti legati dalla relazione r1>r2>r3>r4>….., l’insieme di tutti questi resti sarebbe un insieme S di numeri naturali senza minimo, in contraddizione con l’Assioma del buon ordinamento. Supponiamo dunque che l’algoritmo abbia termine dopo n divisioni con resto rn=0: dimostreremo che l’ultimo resto non nullo rn-1 coincide con il mcd(a,b). Schematizzando: divisione 1 (se r1>0) divisione 2 (se r2>0) divisione 3 (se r3>0) divisione 4 . . . . (se rn-2>0) divisione (n-1) (se rn-1>0) divisione n a=bq1+r1 b=r1q2+r2 r1=r2q3+r3 r2=r3q4+r4 con q1,r1 interi 0, r1<b con q2,r2 interi 0, r2<r1 con q3,r3 interi 0, r3<r2 con q4,r4 interi 0, r4<r3 rn-3=rn-2qn-1+rn-1 rn-2=rn-1qn+rn con qn-1,rn-1 interi 0, rn-1<rn-2 con qn,rn interi 0, rn=0 Se il resto rn=0 (quindi se l’algoritmo ha termine con la divisione n) affermiamo che rn-1=mcd(a,b). Per dimostrare tale affermazione basta applicare la parte 1) del Teorema precedente alle prime (n-1) divisioni, ottenendo: mcd(a,b)=mcd(b,r1)=mcd(r1,r2)=mcd(r2,r3)=…..=mcd(rn-2,rn-1) e poi applicare la parte 2) dello stesso Teorema all’ultima divisione, ottenendo: mcd(rn-2,rn-1)=rn-1 per concludere che in effetti rn-1=mcd(a,b). Esempio: calcoliamo mcd(371,98) con l’algoritmo delle divisioni successive. Eseguiamo in tutto le seguenti 5 divisioni: 371=983+77 98=771+21 77=213+14 21=141+7 14=72+0 q1=3, r1=77 q2=1, r2=21 q3=3, r3=14 q4=1, r4=7 q5=2, r5=0 ottenendo alla fine 7=mcd(371,98). Illustreremo ora un algoritmo per calcolare i coefficienti interi relativi x,y tali che mcd(a,b)=ax+by, basato sull’algoritmo euclideo delle divisioni successive. Se n è il numero delle divisioni successive effettuate, costruiamo le seguenti 2 successioni di interi relativi, sfruttando i valori dei quozienti delle divisioni: prima successione: s0,s1,s2, … , sn seconda successione: t0,t1,t2, … , tn dove si pone, nella prima successione: s0=1, s1=0, e per ogni indice i=2,3, …, n si=si-2-si-1qi-1 e nella seconda successione: t0=0, t1=1, e per ogni indice i=2,3, …, n ti=ti-2-ti-1qi-1 (dove qi-1 è il quoziente della divisione i-1). Osserviamo che s2=s0-s1q1=1, t2=t0-t1q1=-q1, da cui as2+bt2=a-bq1=r1 (si ricava dalla divisione 1); inoltre s3=s1-s2q2=-q2, t3=t1-t2q2=-1+q1q2 , da cui as3+bt3=-aq2+b(1+q1q2)=b-(a-bq1)q2=b-r1q2=r2 (si ricava dalla divisione 2); con analoghi calcoli si ottiene in generale che asj+btj=rj-1 , e in particolare (per j=n) si ottiene asn+btn=rn-1=mcd(a,b). Quindi i coefficienti cercati nella combinazione lineare sono x=sn , y=tn . Esempio: riprendiamo l’esempio precedente mcd(371,98)=7, in cui sono state effettuate n=5 divisioni successive. La costruzione delle successioni si e ti porta ai seguenti valori: s0=1, s1=0, s2=1, s3=-1, s4=4, s5= -5 t0=0, t1=1, t2=-4, t3=4, t4=-15, t5=19 da cui si ricava x=s5=-5, y=t5=19 e infine 7= mcd(371,98)=371•(-5)+98•19 . Numeri coprimi Due numeri naturali a,b sono detti coprimi (o relativamente primi) se mcd(a,b)=1 (quindi se 1 è l’unico divisore comune di a,b). Osserviamo che: i numeri naturali a,b sono coprimi 1 è combinazione lineare di a,b con coefficienti interi relativi. Infatti: se a,b sono coprimi, dalla proprietà del mcd(a,b) si ha che 1 è combinazione lineare di a,b; viceversa se 1 è combinazione lineare di a,b, allora 1 é certamente la minima combinazione lineare positiva di a,b: per la dimostrazione del Teorema di esistenza del mcd(a,b) si ha allora 1= mcd(a,b). Proprietà dei numeri coprimi: 1) Due numeri naturali a,b consecutivi sono sempre coprimi. Infatti se b=a+1, allora 1=a(-1)+b1=combinazione lineare di a,b, e basta applicare l’osservazione precedente. 2) Dati due numeri naturali qualunque a,b, posto d=mcd(a,b), a=ds, b=dt (con s,t opportuni numeri naturali) si ha che i numeri s=a/d, t=b/d sono coprimi (quindi dividendo 2 numeri naturali per il loro massimo comune divisore si ottengono 2 numeri coprimi). Infatti sappiamo che sarà d=ax+by per opportuni interi relativi x,y, e dividendo per d si otterrà: 1=sx+ty=combinazione lineare di s,t e basta applicare di nuovo l’osservazione precedente.