8Z Neka su a i b cijeli brojevi takvi da !(a=b=0) , i neka je d
najmanji prirodni broj oblika ka+lb (najmanja prirodna
linearna kombinacija a i b s
cjelobrojnim koeficijentima). Dokažite da je d=NZM(a,b)
.
Rj Trebamo dokazati da d ima gornja dva svojstva. Svojstvo 2. je lakše -- d je neka linearna kombinacija a i b , pa svaki c koji dijeli a i b , dijeli i d . (Neka je d=k0*a+l0*b . Ako c dijeli a , tada dijeli i k0*a . Ako c dijeli b , dijeli i l0*b . Ako dijeli oba, dijeli i njihov zbroj.)
Još treba dokazati svojstvo 1., odnosno da d zaista dijeli oba broja a
i b . Naravno, zbog simetrije zadatka a<->b , dovoljno je dokazati
d|a -- tada d|b ide potpuno analogno.
Pa pretpostavimo da d ne dijeli a . Po Teoremu o dijeljenju s ostatkom,
postoje brojevi q i r takvi da je a=d*q+r , i 0<=r<d .
Po pretpostavci r nije 0 , pa je r prirodan broj strogo manji od d .
No sjetimo se, d=k0*a+l0*b . Odnosno,
r=a-d*q=a-(k0*a+l0*b)*q=a-k0*q*a-l0*q*b=(1-k0*q)*a+(-l0)*b
-- 1-k0*q
i -l0
su cijeli brojevi,
pa je r također prirodna linearna
kombinacija a i b s cjelobrojnim koeficijentima. d je najmanja takva, no
to je u kontradikciji s r<d
. So, pretpostavka je bila
kriva, te vrijedi d|a . Odnosno, d je zaista najveća zajednička mjera
od a i b .
Dokaz nije gotov: primijetimo, koristili smo već prije korišteno svojstvo da ako prirodnih brojeva nekog oblika ima, onda postoji i najmanji takav. No ima li ih uopće? Kako znamo da postoji linearna kombinacija a i b koja je prirodan broj? Lako... ako nisu oba nula, bar jedan (BSOMP a ) nije 0 . No tada je |a|=sgn(a)*a+0*b prirodan broj.
NZM(a,b)=NZM(b,a)=NZM(a,-b)=NZM(a,a+b)=NZM(a,a-b)=NZM(b,a-b)
.
Rj Sve ove jednakosti dokazuju se prilično slično; ovdje ću pokazati samo jednu, ostale ostavljam kao DZ.
Označimo c:=NZM(a,b) i d:=NZM(b,a-b) . Dokažimo c=d .
Prvo, iz c|a i c|b slijedi c|a-b . Iz c|b i c|a-b slijedi ( c je
zajednički djelitelj brojevia b i a-b , a d je najveći takav) c|d .
Prilično analogno, iz d|b i d|a-b slijedi i da dijeli njihov zbroj,
d|b+(a-b)=a . Sad iz d|a i d|b slijedi d|c .
Iz c|d i d|c ( c i d su prirodni) slijedi c=d .
BSOMP da su a i b nenegativni. Naime, promjena predznaka je ok, pa
vrijedi NZM(a,b)=NZM(|a|,|b|) .
Nadalje, BSOMP da je a>=b . Naravno, ako nije, zamijenimo ih.
Sad imamo a>=b>=0 , s tim da ne mogu vrijediti obje jednakosti
(nisu oba nula, preciznije a sigurno nije nula).
Što ako vrijedi jedna od njih?
Ako je b=0 , lako je vidjeti da je upravo a=NZM(a,0) . Naime a|a & a|0 ,
te bilo koji drugi broj koji dijeli a i 0 , naravno dijeli a .
Ako je a=b , možemo oduzeti jednog od drugog:
NZM(a,a)=NZM(a,a-a)=NZM(a,0) , a to je jednako a kako smo vidjeli gore.
Još je samo preostao slučaj a>b>0 . U tom slučaju vrijedi
NZM(a,b)=NZM(b,a-b)=NZM(b,(a-b)-b)=NZM(b,a-2b)=NZM(b,a-3b)=
... ,
i tako dovoljno mnogo puta, dok ne oduzmemo dovoljno
b
-ova da
a-q*b
Još samo treba vidjeti da to staje nakon konačno mnogo koraka: pretpostavimo da nije tako, tj. da ostatak pri dijeljenju nikad nije 0 . Budući da je a mod b uvijek strogo manje od b , dobivamo na drugom mjestu u NZM strogo padajući niz prirodnih brojeva. Takav (beskonačni) niz nije moguć (još jedno bitno svojstvo skupa N -- primijetimo da npr. u Z i Q+ postoje strogo padajući beskonačni nizovi), pa je to kontradikcija -- postupak mora stati nakon konačno mnogo koraka. Drugim riječima, dobili smo algoritam za računanje NZM , poznat pod imenom Euklidov algoritam:
P Izračunajmo gornjim algoritmom NZM brojeva 3094 i 19950 . (U uglatim zagradama su slučajevi 1..4 .)
NZM(3094,19950)=[1] NZM(19950,3094)=[4] | 19950 : 3094 = 6 i ost. 1386 NZM(3094,1386)=[4] | 3094 : 1386 = 2 i ost. 322 NZM(1386,322)=[4] | 1386 : 322 = 4 i ost. 98 NZM(322,98)=[4] | 322 : 98 = 3 i ost. 28 NZM(98,28)=[4] | 98 : 28 = 3 i ost. 14 <-- NZM(28,14)=[4] | 28 : 14 = 2 i ost. 0 NZM(14,0)=[3] 14Vidimo da zapravo sve možemo rekonstruirati iz ovih dijeljenjā u desnom dijelu -- i obično se onda samo to piše kao Euklidov algoritam. Zadnji stupac, ostaci pri dijeljenju, strogo pada (jer u svakom koraku dijelimo prethodnim ostatkom) prema nuli, i onaj pretposljednji ostatak (prije nule) upravo je tražena NZM.
No osim traženja NZM, na njemu je moguće
izgraditi i neke druge algoritme. Jedan od često korištenih je tzv.
prošireni Euklidov algoritam, koji služi za traženje onih k0 i
l0 -- cjelobrojnih koeficijenata pomoču kojih se NZM(a,b)
može prikazati kao linearna kombinacija brojeva a i b .
Da vidimo kako se to radi, primijetimo da onaj prvi ostatak, r1:=a mod b ,
sigurno možemo prikazati kao linearnu kombinaciju a i b : to je
jednostavno a-q*b=1*a+(-q)*b , gdje je q:=a div b . Na isti način
možemo prikazati sljedeći ostatak, r2:=b mod r1 , kao linearnu
kombinaciju b i r2 , _a time i_ kao linearnu kombinaciju a i b
(uvrstimo r2 ). Sada možemo prikazati i r3 (pomoću r1 i r2 , dakle i
pomoću a i b ), i tako dalje, sve do pretposljednjeg ostatka koji je
NZM. No zapravo je lakše ići unatrag, od NZM prema sve većim
ostacima, sve do početnih argumenata. Pogledajmo:
P Nastavljajući gornji primjer,
14=NZM(19950,3094)=98mod28 = 98 -3*28 =1*98+(-3)*28= =1*98+(-3)*(322-3*98) =-3*322+(1-3*(-3))*98 =-3*322+10*98= =-3*322+10*(1386-4*322) =10*1386+(-3-4*10)*322 =10*1386+(-43)*322= =10*1386+(-43)*(3094-2*1386)=-43*3094+(10-2*(-43))*1386=-43*3094+96*1386= =-43*3094+96*(19950-6*3094)=96*19950+(-43-6*96)*3094=96*19950+(-619)*3094, dobivamo da su koeficijenti redom 96 i -619 uz 19950 i 3094 . (Naravno, zbog velike mogućnosti pogreške u računanju ovakvog tipa, dobro je provjeriti da je 96*19950+(-619)*3094 zaista jednako 14 .) Primijetimo da, pošto je 14 relativno malen u odnosu na 19950 i 3094 , želimo da 96*19950 i 619*3094 budu "približno jednaki", dakle da uz manji broj (3094) ide koeficijent koji je veći po apsolutnoj vrijednosti (-619), i obrnuto. To je informacija koja može biti korisna kasnije. Također primijetimo da koeficijenti (pogledajmo zadnji stupac jednakosti) čine "domino" lanac uređenih parova
(1,-3)->(-3,10)->(10,-43)->(-43,96)->(96,-619) ,
u kojem se novi brojevi dobivaju od prethodna dva, i odgovarajućih
kvocijenata u Euklidovom algoritmu. Konkretno,
-3=0-3*1 ; 10=1-3*(-3) ;
-43=-3-4*10 ; 96=10-2*(-43) ; -619=-43-6*96
, gdje su podvučeni upotrijebljeni kvocijenti. Vidimo da se koriste
obrnutim redom, da nam onaj zadnji (čiji je ostatak 0 , u našem
slučaju 2=28:14 ) uopće ne treba, te da su dva posljednja dobivena
broja upravo koeficijenti koji nam trebaju. Također vidimo da brojevi
alterniraju u predznacima, a rastu po apsolutnoj vrijednosti. Na taj
način, posljednji dobiveni broj je najveći po apsolutnoj vrijednosti,
dakle on je onaj koji množi manji argument NZMa (u ovom slučaju
3094 ).23 3 4 2 6 0 1 -3 10 -43 96 -619 .