Documente Academic
Documente Profesional
Documente Cultură
n matematic, algoritmul lui Euclid este o metod ecient de calcul al celui mai mare divizor comun (CMMDC). El este denumit dup matematicianul grec Euclid,
care l-a descris n Crile VII i X din Elementele.[1]
1 Bazele
1.1 Cel mai mare divizor comun
Algoritmul lui Euclid calculeaz cel mai mare divizor comun (CMMDC) al dou numere naturale a i b. Cel mai
mare divizor comun g este cel mai mare numr natural
care i divide pe a i pe b. Cel mai mare divizor comune este adesea scris ca CMMDC(a, b) sau, mai simplu,
ca (a, b),[2] dei a doua notaie matematic este utilizat i pentru alte concepte matematice, cum ar vectorii
bidimensionali sau intervalele deschise.
Dac CMMDC(a, b) = 1, atunci a i b sunt prime ntre
ele.[3] Aceast proprietate nu depinde de primalitatea lui a
i a lui b.[4] De exemplu, numerele 6 i 35 nu sunt numere
prime, deoarece ambele au doi factori: 6 = 2 3 i 35 = 5
7. Cu toate acestea, 6 i 35 sunt prime ntre ele. Niciun
alt numr natural n afar de 1 nu divide i pe 6 i pe 35,
deoarece ele nu au niciun factor prim n comun.
Prima descriere rmas a algoritmului lui Euclid este lucrarea lui Euclid intitulat Elementele (c. 300 .e.n.), ind
unul dintre cei mai vechi algoritmi numerici nc utilizai.
Algoritmul original a fost descris doar pentru numere naturale i lungimi geometrice (numere reale), dar algoritmul a fost generalizat n secolul al XIX-lea i la alte tipuri
de numere, cum ar ntregii Gaussieni i polinoamele de
o variabil. Aceasta a dus la noiuni moderne de algebr
abstract, cum ar inelele euclidiene. Algoritmul lui Euclid s-a generalizat i pentru alte structuri matematice,
cum ar nodurile i polinoamele multivariate.
DESCRIERE
multe ecuaii asociate cu algoritmul lui Euclid sunt recursive. n ne, n coborrea innit,[18] o soluie dat n
numere naturale este utilizat pentru a construi o soluie cu numere naturale mai mici.[19] Soluiile, ns, nu se
pot micora nelimitat, deoarece exist un numr nit de
numere naturale mai mici ca numerele naturale iniiale.
Astfel, e soluia original era imposibil, e construcia unor soluii mai mici trebuie s se termine. Acest din
urm argument este folosit pentru a arta c algoritmul
lui Euclid pentru numere naturale trebuie s se termine
ntr-un numr nit de pai.[20]
2 Descriere
2.1 Procedur
Algoritmul lui Euclid este iterativ, adic rspunsul se gsete dup un numr de pai; rezultatul ecrui pas este
utilizat ca punct de nceput pentru pasul urmtor.[21] Fie
k un ntreg care numr paii algoritmului, ncepnd cu
zero. Astfel, pasul iniial corespunde lui k = 0, pasul urmtor corespunde lui k = 1, i aa mai departe.
Astfel, algoritmul lui Euclid care calculeaz CMMDC al n pasul iniial (k = 0), resturile r i r sunt chiar a i b,
doi ntregi este sucient pentru a calcula CMMDC al ori- numerele al cror CMMDC este cutat. n pasul urmtor
(k = 1), resturile sunt b i restul r0 al pasului iniial, i aa
ct de muli ntregi.
mai departe. Astfel, algoritmul poate scris ca o secven
de ecuaii
1.2
a = q0 b + r0
b = q1 r0 + r1
r0 = q2 r1 + r2
r1 = q3 r2 + r3
2.4
Vizualizare
2.2
Demonstraia corectitudinii
2.4 Vizualizare
Algoritmul lui Euclid poate vizualizat n termenii analogiei ptratelor dat mai sus pentru cel mai mare divizor comun.[24] Se presupune c se dorete acoperirea unui
dreptunghi a-pe-b cu ptrate care s-l acopere exact, unde a este cel mai mare dintre cele dou numere. nti,
se ncearc mprirea dreptunghiului n ptrate b-pe-b;
aceasta las, ns, un dreptunghi rezidual r0 -pe-b neacoperit, unde r0 <b. Atunci se ncearc mprirea dreptunghiului rezidual cu ptrate r0 -pe-r0 . Rmne un al doilea dreptunghi rezidual r1 -pe-r0 , pe care se ncearc s
e acoperit cu ptrate r1 -pe-r1 , i aa mai departe. irul
acesta se termin atunci cnd nu mai rmne niciun dreptunghi rezidual, adic atunci cnd ptratele acoper exact
dreptunghiul rezidual. Lungimea laturilor celui mai mic
ptrat este CMMDC al dimensiunilor dreptunghiului original. De exemplu, cel mai mic ptrat din gura alturat
este 21-pe-21 (cu rou), iar 21 este CMMDC de 1071 i
462, dimensiunile dreptunghiului original (verde).
unde modulul lui rk este strict mai mic dect cel al lui rk.
Teorema mpririi cu rest asigur c exist ntotdeauna
Pentru ilustrare, algoritmul lui Euclid se poate utiliza pen- acest ct i acest rest. Teorema mpririi cu rest a numetru a gsi cel mai mare divizor comun al lui a = 1071 i relor naturale spune i c qk i rk sunt unice, dar unicita[25]
b = 462. Pentru nceput, multiplii lui 462 sunt sczui tea lor nu este necesar pentru algoritmul lui Euclid.
din 1071 pn rmne un rest mai mic dect 462. Se pot n versiunea original dat de Euclid pentru acest algoscdea doi astfel de multipli (q0 = 2), lsnd numrul 147 ritm, ctul i restul se gsesc prin scdere repetat; adic
2.3
Exemplu
3 ISTORIC
rk este sczut din rk repetat pn cnd restul rk este tat este mai mic n modul dect restul pozitiv tipic.[29][30]
mai mic dect rk. O abordare mai ecient utilizeaz Anterior, ecuaia
mprirea numerelor ntregi i operaia modulo pentru a
calcula respectiv ctul i restul. Operaia modulo d resrk = qk rk + rk
tul mpririi a dou numere; astfel,
presupunea c rk > rk > 0. Se poate, nsa, calcula i un
rk rk mod rk
alt rest negativ ek
Restul este echivalent cu clasa de congruen din
aritmetica modular.
rk = (qk + 1) rk + ek
2.6
Implementri
3 Istoric
Algoritmul lui Euclid este unul dintre cei mai vechi algoritmi nc n uz.[31] El apare n Elemente (c. 300 .e.n.),
anume n Cartea 7 (Propunerile 12) i n Cartea 10 (Propunerile 23). n Cartea 7, algoritmul este formulat pentru ntregi, pe cnd n Cartea 10, el este formulat pentru
lungimi de segmente de dreapt. (n uz modern, s-ar spune c a fost formulat pentru numere reale. Dar lungimile, ariile i volumele, reprezentate ca numere reale n uz
n versiunea pe baz de scdere, denit de Euclid, cal- modern, nu se msoar n aceleai uniti i nu exist o
culul restului (b = a mod b) este nlocuit cu scderea unitate natural de lungime, arie sau volum, iar conceptul
de numere reale nu era cunoscut la acea vreme.) Al doirepetat.[27]
lea algoritm este geometric. CMMDC al dou lungimi a
function CMMDC(a, b) if a = 0 return b while b 0 if
i b corespunde celei mai mari lungimi g care msoar a
a > b a := a b else b := b a return a
i b exact; cu alte cuvinte, lungimile a i b sunt ambele
Variabilele a i b rein alternativ resturile anterioare rk multipli ntregi ai lungimii g.
i rk. Se presupune c a este mai mare ca b la nceputul
Algoritmul nu a fost, probabil, descoperit de Euclid, caunei iteraii; atunci a este egal cu rk, indc rk > rk.
re doar a compilat rezultate ale matematicienilor dinainPe parcursul acestei bucle, a este redus cu multipli ai restea sa n lucrarea Elemente.[32][33] Matematicianul i istului anterior b pn cnd a este mai mic ca b. Atunci a
toricul B. L. van der Waerden sugereaz c Cartea VII
este urmtorul rest rk. Atunci b este redus cu multipli ai
deriv dintr-un manual de teoria numerelor scris de malui a pn cnd este mai mic dect a, dnd urmtorul rest
tematicieni ai colii lui Pitagora.[34] Algoritmul a fost
rk, i aa mai departe.
probabil cunoscut lui Eudoxus din Cnidus (circa 375
Versiunea recursiv[28] se bazeaz pe egalitatea CM- .e.n.)[31][35] Algoritmul ar putea dinainte chiar i de
MDC al resturilor succesive i pe condiia de oprire CM- Eudoxus,[36][37] judecnd dup utilizarea termenului tehMDC(rN, 0) = rN.
nic (anthyphairesis, scdere reciproc)
[38]
function CMMDC(a, b) if b = 0 return a else return din lucrrile lui Euclid i Aristotel.
La neputul iteraiei k, variabila b deine ultimul rest rk,
iar variabila a deine predecesorul acesteia, rk. Pasul b
:= a mod b este echivalent cu formula recursiv de mai
sus rk rk mod rk. Variabila t reine valoarea lui rk
n timp ce se calculeaz urmtorul rest rk. La sfritul
acestei bucle de iteraii, variabila b va pstra restul rk, iar
variabila a va reine predecesorul, rk.
CMMDC(b, a mod b)
Pentru ilustrare, se calculeaz CMMDC(1071, 462)
din CMMDC(462, 1071 mod 462) = CMMDC(462,
147). Acest al doilea CMMDC se calculeaz din CMMDC(147, 462 mod 147) = CMMDC(147, 21), care la
rndul su se calculeaz din CMMDC(21, 147 mod 21)
= CMMDC(21, 0) = 21.
2.7
Dup mai multe secole, algoritmul lui Euclid a fost descoperit independent n India i n China,[39] i a fost utilizat mai ales pentru rezolvarea de ecuaii diofantice care
apar n astronomie i la realizarea de calendare precise.
Spre sfritul secolului al V-lea, matematicianul i astronomul indian Aryabhata a descris algoritmul sub numele
de pulverizatorul,[40] poate din cauza ecienei sale n
rezolvarea de ecuaiilor diofantice.[41] Dei un caz special al teoremei chinezeti a resturilor fusese deja descris
de matematicianul i astronomul chinez Sun Tzu,[42] soluia general a fost publicat de Qin Jiushao n cartea sa
din 1247 intitulat Shushu Jiuzhang (
Tratat matematic n nou seciuni).[43] Algoritmul lui Euclid a fost
5
descris n Europa pentru prima dat n a doua ediie a lucrrii lui Bachet Problmes plaisants et dlectables (Probleme plcute i delectabile, 1624).[40] n Europa, a fost
folosit tot pentru rezolvarea de ecuaii diofantice, dar i
la construcia fraciilor continue. Algoritmul lui Euclid
extins a fost publicat de matematicianul englez Nicholas
Saunderson, care i l-a atribuit lui Roger Cotes ca metod
de calcul ecient a fraciilor continue.[44]
4 Aplicaii matematice
Identitatea lui Bzout spune c cel mai mare divizor comun g al dou numere ntregi a i b se poate reprezenta
sub form de combinaie liniar a primelor dou numere
a i b.[58] Cu alte cuvinte, ntotdeauna exist dou numere
n secolul al XIX-lea, algoritmul lui Euclid a dus la ntregi s i t astfel nct g = sa + tb.[59][60]
dezvoltarea unor noi sisteme de numere, cum ar ntregii
ntregii s i t pot calculai pe baza cturilor q0 , q1 etc.
gaussieni i ntregii eisensteinieni. n 1815, Carl Gauss a
inversnd ordinea ecuaiilor din algoritmul lui Euclid.[61]
utilizat algoritmul lui Euclid pentru a demonstra factorincepnd cu penultima ecuaie, g poate exprimat n terzarea unic a ntregilor gaussieni, dei lucrarea sa a fost
meni de ctul qN i de cele dou resturi anterioare, rN
publicat pentru prima oar n 1832.[45] Gauss a menioand rN.
nat algoritmul n Disquisitiones Arithmeticae (publicat la
1801), dar numai ca metod pentru fraciile continue.[39]
g = rN = rN qN rN
Peter Dirichlet pare a fost primul care a descris algorit[46]
mul lui Euclid ca baz pentru teoria numerelor. Dirichlet a observat c multe din rezultatele teoriei numere- Acele dou resturi pot , de asemenea, exprimate n terlor, cum ar unicitatea factorizrii, sunt adevrate pentru meni de cturile corespunztoare lor i de resturile antetoate celelalte sisteme de numere n care se poate aplica rioare,
algoritmul lui Euclid.[47] Cursurile lui Dirichlet pe tema
rN = rN qN rN
teoriei numerelor au fost editate i extinse de Richard Dedekind, care a utilizat algoritmul lui Euclid pentru a studia
rN = rN qN rN
ntregii algebrici, un tip general de numere. De exemplu,
Dedekind a fost primul care a demonstrat teorema celor nlocuind aceste formule pentru rN i rN n prima
dou ptrate a lui Fermat folosind factorizarea unic a n- ecuaie rezult g sub form de combinaie liniar a restregilor gaussieni.[48] Dedekind a denit i conceptul de turilor rN i rN. Procesul de substituie a resturilor
domeniu euclidian, un sistem numeric n care se poate de- din formulele ce implic predecesoarele lor se poate conni o versiune generalizat a algoritmului lui Euclid. n tinua pn cnd se ajunge la numerele originale a i b
ultimele decenii ale secolului al XIX-lea, ns, algoritmul
lui Euclid a fost treptat eclipsat de teoria mai general a
r 2 = r 0 q2 r 1
lui Dedekind despre idealuri.[49]
r1 = b q1 r0
n secolul al XIX-lea au fost dezvoltate i alte aplicaii
r0 = a q0 b
ale algoritmului lui Euclid. n 1829, Charles Sturm a
artat c algoritmul este util n metoda lanurilor Sturm
de numrare a rdcinilor reale dintr-un interval dat ale Dup ce toate resturile r0 , r1 etc. au fost substituite, ultima ecuaie l exprim pe g sub forma unei combinaii
polinoamelor.[50]
liniare de a i b: g = sa + tb. Identitatea lui Bzout, i
Algoritmul lui Euclid a fost prima metod de descodeci i algoritmul anterior, poate generalizat la conperire a relaiilor ntre numere ntregi de acelai ortextul domeniilor euclidiene.
din de mrime. n ultimii ani, s-au mai dezvoltat civa ali algoritmi noi legai de relaiile ntre ntregi,
ca de exemplu algoritmul FergusonForcade (1979) al 4.2 Idealuri principale
lui Helaman Ferguson i R.W. Forcade,[51] i algoritmii
asociai, algoritmul LLL, algoritmul HJLS i algoritmul Identitatea lui Bzout d o alt deniie a celui mai mare
PSLQ.[52][53]
divizor comun g al dou numere a i b.[11] Fie mulimea
APLICAII MATEMATICE
multiplu m al lui g poate obinut alegnd u = ms i v ntruct formula de recuren este considerat corect
= mt, unde s i t sunt ntregii din identitatea lui Bzout. pentru rk i rk, ele pot exprimate n funcie de variAceasta se poate vedea nmulind identitatea lui Bzout abilele corespunztoare s i t
cu m
rk = (sk a + tk b) qk(sk a + tk b)
mg = msa + mtb
Rearanjnd aceast ecuaie, rezult formula de recuren
Astfel, mulimea tuturor numerelor ua + vb este echiva- pentru pasul k
lent cu mulimea multiplilor m ai lui g. Cu alte cuvinte,
mulimea tuturor sumelor posibile de multipli ntregi ai
rk = sk a + tk b = (sk qksk) a + (tk
dou numere (a i b) este echivalent cu mulimea mulqktk) b
tiplilor lui CMMDC(a, b). CMMDC se spune c este
generator al idealului lui a i b. Aceaat deniie pentru
CMMDC a dus la unele concepte moderne din algebra 4.4 Metoda matriceal
abstract, cum ar cel de ideal principal (un ideal generat de un singur element) i de domeniu de ideal principal ntregii s i t pot gsii i folosind o metod echivalent
bazat pe matrice.[64] Secvena de ecuaii a algoritmului
(un domeniu n care toate idealurile sunt principale).
lui
Euclid
Unele probleme se pot rezolva cu acest rezultat.[62] De
exemplu, e dou ceti de msurare de volum a respectiv
a = q0 b + r0
b. Adugnd sau scznd u multipli ai primei ceti i v
multipli ai celei de-a doua ceti, poate msurat orice
b = q1 r0 + r1
volum ua + vb. Aceste volume sunt toate multipli ai lui g
= CMMDC(a, b).
rN = qN rN + 0
4.3
se poate scrie ca produs al matricilor cturilor 2-pe-2 nmulite cu un vector bidimensional al resturilor
)( ) (
1
b
q
= 0
0 r0
1
)(
1 q1
0
1
)( )
N (
1 r0
qi
= =
0 r1
1
i=0
)
1
0
tk = tk qktk
cu valorile de nceput
s = 1, t = 0
(
m11
M=
m21
m12
m22
)
=
N (
qi
i=0
) (
1
q
= 0
0
1
1
0
)(
q1
1
s = 0, t = 1
Cu ajutorul acestei relaii de recuren, ntregii lui Bzout
s i t sunt dai de s = sN i t = tN, unde N este pasul la
care algoritmul se termin cu rN = 0.
Validitatea acestei abordri se poate demonstra prin inducie. Se presupune c formula recursiv este corect
pn la pasul k1 al algoritmului, cu alte cuvinte, se presupune c
rj = sj a + tj b
( )
(
)
( )
a
rN 1
g
=M
=M
b
0
0
Pentru a exprima pe g sub form de combinaie liniar de
a i b, ambele pri ale acestei ecuaii pot nmulite cu
inversa matricei M.[64][65] Determinantul lui M este egal
cu (1)N+1 , deoarece este egal cu produsul determinanilor matricelorct, care sunt egale cu minus unu. ntruct
determinantul lui M nu este niciodat zero, vectorul nal
de resturi se poate rezolva gsind inversa lui M
( )
(
pentru orice j mai mic dect k. Al k-lea pas al algoritmu- ( )
g
a
m22
lui d ecuaia
= M1
= (1)N +1
0
b
m21
rk = rk qkrk
m12
m11
)( )
a
b
)
(
1
q
N
0
1
)
1
0
4.7
7
ecuaie diofantic liniar tipic n variabilele ntregi x i
y are forma[70]
4.5
ax c mod b.
Fie g cel mai mare divizor comun al lui a i b. Ambii
termeni din ecuaia ax + by sunt divizibili cu g; deci, e
c este divizibil cu g, e ecuaia nu are soluii. mprind
ambele pri ale ecuaiei la c/g, ea poate redus la identitatea lui Bezout
sa + tb = g
unde s i t se pot gsi prin algoritmul lui Euclid extins.[71]
Aceasta mai d o soluie a ecuaiei diofantice, x1 = s (c/g)
i y1 = t (c/g).
conform identitii lui Bzout. nmulind ambele pri ale n general, o ecuaie diofantic liniar e nu are soluie,
e are un numr innit de soluii.[72] Pentru a demonstra
ecuaiei cu v rezult relaia
cel de-al doilea caz, se consider dou soluii, (x1 , y1 ) i
(x2 , y2 )
v = suv + twv = sL + twv
ax1 + by1 = c = ax2 + by2
Cum w divide ambii termeni din partea dreapt, nseamn c el divide i termenul din stnga, v. Acest rezultat
este cunoscut sub numele de lema lui Euclid:[67] Dac un sau echivalent
numr prim divide pe L, atunci el divide cel puin unul
din factorii lui L. La fel, dac un numr w este prim cu
a(x1 x2 ) = b(y2 y1 ).
mai multe numere a1 , a2 , , an, atunci w este prime i
cu produsul lor, a1 a2 an.[67]
Astfel, cea mai mic diferen ntre dou soluii x este b/g,
Lema lui Euclid este sucient pentru a demonstra c toa- pe cnd cea mai mic diferen ntre dou soluii y este
te numerele au o unic descompunere n factori primi.[68] a/g. Astfel, soluiile pot exprimate ca
Dac se presupune contrariul, i anume c exist dou
factorizri independente ale lui L n m respectiv n factori
x = x1 bt/g
primi
y = y1 + at/g.
L = p1 p2 pm = q1 q2 qn
ntruct toate numerele prime p divid pe L conform presupunerii, atunci ecare dintre ele divide unul dintre factorii q; ntruct ecare q este i el prim, atunci nseamn
c p = q. mprind iterativ la factorii p rezult c ecare p are un corespondent q; cele dou descompuneri n
factori primi sunt identice cu excepia ordinii factorilor.
Factorizarea unic a numerelor n factori primi are mai
multe aplicaii n demonstraiile matematice.
4.6
Ecuaiile diofantice sunt ecuaii ale cror soluii sunt neaprat numere ntregi; ele i trag numele de la matemati- Un corp nit este o mulime de numere cu patru operacianul alexandrin din secolul al III-lea Diophantus.[69] O ii generice. Aceste operaii se numesc adunare, scdere,
APLICAII MATEMATICE
Mi = M / mi
Astfel, ecare Mi este produsul tuturor modulelor cu excepia lui mi. Soluia depinde de girea a N noi numere
hi astfel nct
Mihi 1 mod mi
Cu aceste numere hi, orice ntreg x se poate reconstitui
din resturile xi prin ecuaia
x (x1 M 1 h1 + x2 M 2 h2 + + xNMNhN )
mod M
ntr-un astfel de corp cu m numere, ecare element nenul Deoarece aceste numere hi sunt inversele multiplicative
a are un invers multiplicativ unic modulo m, a1 astfel ale numerelor Mi, ele se pot gsi folosind algoritmul lui
nct aa1 = a1 a 1 mod m. Acest invers se poate gsi Euclid aa cum s-a artat n subseciunea anterioar.
rezolvnd ecuaia ax 1 mod m,[74] sau ecuaia diofantic
liniar echivalent[75]
4.8
x2 x mod m2
xN x mod mN
5.1
Numrul de pai
Eciena algoritmului
9
adevrat sunt b = 1 i a = 2, care sunt F 2 i respectiv
F 3 . Se presupune c rezultatul este valabil pentru toate
valorile lui N pn la M 1. Primul pas al algoritmului de M pai este a = q0 b + r0 , iar al doilea pas este b
= q1 r0 + r1 . Algoritmul ind recursiv, el a rulat M1
pai pentru a gsi CMMDC(b, r0 ) iar valorile lor cele
mai mici sunt FM i FM. Cea mai mic valoare a lui
a este deci cea cu q0 = 1, de unde a = b + r0 = FM +
FM = FM. Aceast demonstraie, publicat de Gabriel
Lam n 1844, reprezint nceputurile teoriei complexitii computaionale,[95] ind i prima aplicaie practic a
irului lui Fibonacci.[93]
Acest rezultat este sucient pentru a arta c numrul de
pai din algoritmul lui Euclid nu poate niciodat mai
mare dect de cinci ori numrul cifrelor sale (n baz
10).[96] Dac algoritmul ruleaz n N pai, atunci b este mai mare sau egal cu FN care este mai mare sau egal
cu N , unde este raportul de aur. Cum b > N , atunci
N < logb. ntruct log10 > 1/5, N/5 < log10 logb =
log10 b. Astfel, N < 5 log10 b. Deci, algoritmul lui Euclid
are nevoie ntotdeauna de mai puin dect O(h) mpriri,
unde h este numrul de cifre al celui mai mic numr b.
5.1.2 Numrul mediu de pai
5.1
Numrul de pai
Numrul de pai necesari pentru calculul CMMDC al dou numere naturale, a i b, se poate nota cu T(a, b).[91]
Dac g este CMMDC al lui a i b, atunci a = mg i b = ng
pentru dou numere m i n prime ntre ele. Atunci
T(a, b) = T(m, n)
T (a) =
dup cum se poate vedea mprind toi paii din algoritmul lui Euclid la g.[92] Dup acelai argument, numrul
de pai rmne acelai dac a i b sunt nmulii cu un factor comun w: T(a, b) = T(wa, wb). De aceea, numrul T
de pai poate varia dramatic ntre perechi foarte apropiate de numere, cum ar T(a, b) i T(a, b + 1), n funcie
de ct de mare este CMMDC n ecare caz.
0b<a
1
T (a, b).
a
1
(a)
T (a, b).
0b<a,GCD(a,b)=1
(1/6) +
, unde este
Dac algoritmul lui Euclidean se execut n N pai pen- cu eroarea rezidual de ordinul lui a
tru dou numere naturale a > b > 0, cele mai mici valori innitezimal. Constanta C din aceast formul este egal
ale lui a i b pentru care acest lucru este adevrat sunt cu
numerele Fibonacci FN respectiv FN.[93] Aceasta se
C = (1/2) + 6 (ln 2/2 )( 4 242 '(2) + 3
poate arta prin inducie.[94] Dac N = 1, b divide a; cele mai mici numere naturale pentru care acest lucru este
ln 2 2) 1.467
10
EFICIENA ALGORITMULUI
17,0%, 9,3%, respectiv 5,9%. ntruct operaia de scdere este mai rapid dect cea de mprire, mai ales n cazul
numerelor mari,[110] algoritmul lui Euclid bazat pe scderi este competitiv cu cel bazat pe mpriri.[111] Acest
exploatat de versiunea binar a algoritmului
ntruct prima medie se poate calcula din media tau prin aspect este[112]
lui
Euclid.
[104]
sum peste divizorii d ai lui a
T (a) =
1
(d) (d)
a
d|a
Combinarea numrului estimat de pai cu calculul computaional estimat al ecrui pas arat c algoritmul lui
Euclid are o cretere ptratic (h2 ) n funcie de numrul
de cifre h al celor dou numere iniiale a i b. Fie h0 ,
h1 , , hN numrul de cifre ale resturilor succesive r0 ,
r1 , , rN. Cum numrul de pai N crete liniar cu h,
timpul de execuie este limitat de
(
i<N
)
(
)
hi (hi hi+1 +2) O h
(hi hi+1 +2) O(h(h0 +2N ))
i<N
Algoritmul lui Euclid este folosit pe scar larg n practic, mai ales pentru numere mici, datorit simplitii sale.
nlocuind formula aproximativ pentru T(a) n aceast Pentru comparaie, se poate determina eciena unor alternative la algoritmul lui Euclid.
ecuaie rezult o estimare a lui Y(n)[107]
O abordare inecient a gsirii CMMDC al dou numere
naturale a i b este de a le calcula toi divizorii comuni;
Y(n) (12/2 ) ln 2 ln n + 0.06.
CMMDC este, atunci, cel mai mare dintre acetia. Divizorii comuni se pot gsi mprind succesiv ambele nu5.2 Costul computaional al unui pas
mere la numerele de la 2 la cel mai mic dintre cele dou,
b. Numrul de pai al acestei abordri crete liniar cu
La ecare pas k al algoritmului lui Euclid, se calculeaz b, sau exponenial cu numrul de cifre. O alt abordactul qk i restul rk pentru o pereche dat de ntregi rk re inecient este gsirea factorilor primi ai unuia sau ai
i rk
ambelor numere. Aa cum se arat mai sus, CMMDC este egal cu produsul factorilor primi comuni ai celor dou
rk = qk rk + rk.
numere a i b.[7] Metodele actuale de factorizare sunt i
ele ineciente; multe alte sisteme criptograce se bazeaz
Costul computaional al ecrui pas este asociat cu g- tocmai pe aceast inecien.[10]
sirea lui qk, ntruct restul rk poate calculat rapid din Algoritmul CMMDC binar este o alternativ ecienrk, rk, and qk
t care nlocuiete mprirea cu operaii mai rab=1
rk = rk qk rk.
Costul computaional al mpririi numerelor pe h bii
scaleaz ca O(h( +1)), unde este lungimea ctului.[108]
Pentru comparaie, algoritmul original al lui Euclid bazat
pe scderi poate mult mai lent. O singura mprire de
ntregi este echivalent cu q scderi (q este ctul mpririi). Dac raportul a supra b este foarte mare, i ctul este
mare i este nevoie de multe scderi. Pe de alt parte, s-a
artat c sunt anse mari ca aceste cturi s e numere
ntregi mici. Probabilitatea ca un ct dat s aib o anumit valoare q este aproximativ ln|u/(u 1)| unde u = (q
+ 1)2 .[109] Pentru ilustrare, probabilitatea ca la mprire s rezulte ctul 1, 2, 3, sau 4 este aproximativ 41,5%,
6.2
Polinoame
11
unde m = n = 1 i m = n = 0 sunt valorile iniiale. Convergentul mk/nk este cea mai bun aproximaie
Dup cum s-a descris mai sus, algoritmul lui Euclid este raional a lui a/b cu numitorul nk:
folosit pentru a gsi cel mai mare divizor comun al dou
numere naturale (numere ntregi pozitive). Acesta poate
a m
1
, ns, generalizat la numere reale, i la sisteme de nume- k < 2 .
b
n
n
k
k
re mai exotice, cum ar polinoamele, ntregii cuadratici
i cuaternionii Hurwitz. n ultimele dou cazuri, algoritmul lui Euclid este folosit pentru a demonstra proprieta- 6.2 Polinoame
tea crucial de unicitate a factorizrii, anume cea c astfel
de numere pot factorizate n mod unic n elemente ire- Polinoamele de o singur variabil x se pot aduna, nmuli
ductibile, structuri similare numerelor prime. Unicitatea i descompune n polinoame ireductibile, structuri anafactorizrii este esenial n multe demonstraii din teoria loage numerelor prime din mulimea numerelor ntregi.
numerelor.
Cel mai mare divizor comun g(x) al dou polinoame a(x)
i b(x) este denit ca produsul polinoamelor ireductibile comune, care pot identicate folosind algoritmul lui
6.1 Numere reale i raionale
Euclid.[127] Procedura de baz este similar cu cea de la
ntregi. La e care pas k, se calculeaz un polinom ct
Algoritmul lui Euclid se poate aplica i numerelor reale, qk(x) i un polinom rest rk(x) care satisfac ecuaia recuraa cum arat Euclid n Cartea 10 din Elementele. Sco- siv
pul algoritmului este identicarea unui numr real g astfel nct dou numere reale, a i b, sunt multipli ntregi
rk(x) = qk(x) rk(x) + rk(x)
ai acestuia: a = mg i b = ng, unde m i n sunt ntregi.[32]
Aceast identicare este echivalent cu gsirea unei rela- unde r(x) = a(x) i r(x) = b(x). Polinomul ct este ales
ii ntregi ntre dou numere reale a i b; adic, ea deter- astfel nct termenul dominant al lui qk(x) rk(x) s e
min ntregii s i t astfel ntt sa + tb = 0. Euclid folo- egal cu termenul dominant al lui rk(x); aceasta asigur
sete acest algoritm pentru a trata chestiunea lungimilor c gradul ecrui rest este mai mic dect gradul predeincomensurabile.[125][126]
cesorului su grad[rk(x)] < grad[rk(x)]. ntruct gradul
Algoritmul lui Euclid pe numere reale difer de cel pe ntregi prin dou aspecte. Primul este c resturile rk sunt
numere reale, dei cturile qk sunt, ca i mai nainte, ntregi. Al doilea este c algoritmul nu este garantat c se
termin ntr-un numr nit N de pai. Dac se termin,
atunci fracia a/b este un numr raional, adic este raportul a dou numere ntregi
a/b = mg/ng = m/n
este un numr ntreg nenegativ, i ntruct el scade la ecare pas, algoritmul lui Euclid se ncheie ntr-un numr
nit de pai. Ultimul rest nenul este cel mai mare divizor
comun al celor dou polinoame iniiale, a(x) i b(x).[128]
De exemplu, e urmtoarele polinoame de gradul patru,
care ecare se descompune n dou polinoame de gradul
doi:
a(x) = x4 4x3 + 4 x2 3x + 14 = (x2 5x +
7)(x2 + x + 2)
12
Algoritmul lui Euclid polinomial are i alte aplicaii proprii, cum ar lanurile Sturm, o tehnic de numrare a
rdcinilor reale ale polinoamelor ntr-un interval dat de
pe axa numerelor reale. Aceasta are aplicaii n mai multe zone, cum ar criteriul de stabilitate RouthHurwitz
din teoria sistemelor.
n cele din urm, coecienii polinoamelor nu sunt obligatoriu numere ntregi, reale, i nici mcar complexe.
De exemplu, coecienii pot din orice corp, cum ar
corpurile nite GF(p) descrise mai sus. Concluziile
corespunztoare despre algoritmul lui Euclid i despre
aplicaiile acestuia sunt valabile chiar i pentru asemenea
polinoame.[127]
13
analizase eciena algoritmului lui Euclid, pe baza unei
sugestii a lui Joseph Liouville.[133] Abordarea lui Lam
impunea unicitatea factorizrii numerelor de forma x +
y, unde = e2i/n este rdcina de ordin n a lui 1, adic,
n = 1. Dei aceast abordare are succes pentru anumite valori ale lui n (cum ar n=3, ntregii Eisenstein),
n general, asemenea numere nu au o factorizare unic.
Aceast neunicitate a factorizrilor din unele corpuri ciclotomice l-a condus pe Ernst Kummer la conceptul de
numr ideal i, mai apoi, pe Richard Dedekind la cel de
ideal.
6.4.1
ntregii cuadratici pot un exemplu de inel euclidian. ntregii cuadratici sunt o generalizare a conceptului de ntregi gaussieni n care unitatea imaginar i este nlocuit
de un numr . Astfel, ele au forma u + v , unde u i v
sunt numere ntregi, iar are una dintre dou forme posibile, n funcie de parametrul D. Dac D nu este egal cu
un multiplu de patru plus unu (cum ar 5, 17, sau 19),
atunci
= D.
Altfel,
dou versiuni de algoritm al lui Euclid, unul pentru divizorii la stnga i alta pentru divizorii la dreapta. Dac se
aleg divizorii la dreapta, primul pas n a gsi CMMDC(,
) prin algoritmul lui Euclid se poate scrie
0 = 0 = ( 0 )
unde 0 reprezint ctul, iar 0 reprezint restul. Aceast
ecuaie arat c orice divizor comun la dreapta al lui i
este divizor comun i al restului 0 . Ecuaia analoag
pentru divizorii la stnga ar
0 = 0 = ( 0 )
n oricare variant, procesul se repet ca mai sus pn
cnd se identic cel mai mare divizor comun la dreapta
sau la stnga. Ca i n cazul inelelor euclidiene, mrimea restului 0 trebuie s e strict mai mic dect , i
trebuie s existe doar un numr nit de mrimi posibile
pentru 0 , pentru ca algoritmul s se termine.
Majoritatea rezultatelor pentru CMMDC sunt valabile i
pentru inelele necomutative. De exemplu, identitatea lui
Bzout arm c CMMMDC la dreapta al lui i se
poate exprima sub form de combinaie liniar de i .
Cu alte cuvinte, exist numerele i cu proprietatea c
= +
= (1 + D)/2.
6.5
Inele necomutative
Algoritmul lui Euclid se poate aplica pe inele necomutative, ca i pe mulimea cuaternionilor Hurwitz.[137] Fie
i dou elemente ale unui inel necomutativ. Ele au un
divizor comun la dreapta dac = i = pentru
dou numere i din inel. Analog, ele au un divizor comun la stnga dac = i = pentru dou elemente O important generalizare a algoritmului lui Euclid este
i n inel. Cum nmulirea nu este comutativ, exist conceptul de baz Grbner din geometria algebric. Aa
14
NOTE
cum s-a artat mai sus, CMMDC g al dou numere n- [14] Knuth, Donald E. (1997). The Art of Computer Programming, Volume 1: Fundamental Algorithms (ed. 3rd).
tregi a i b este generatorul idealului lor. Cu alte cuvinte,
Addison-Wesley. ISBN 0-201-89683-4 (Seciunea 1.2.1:
oricare ar ntregii s i t, exist un alt ntreg m cu propriMathematical Induction, pp. 1121.)
etatea c
[15] Rosen, pp. 1821.
sa + tb = mg.
Dei aceasta este valabil i cnd s, t, m, a i b reprezin- [17] Anderson JA (2001). Discrete Mathematics with Combinatorics. Upper Saddle River, NJ: Prentice Hall. pp.
t polinoame de o singur variabil, ea nu este adevrat
165223. ISBN 0-13-086998-8
pentru inele de polinoame de mai mult de o variabil.[141]
n acest caz, se poate deni o mulime nit de polinoa- [18] Rosen, p. 492.
me generatoare g1 , g2 etc. astfel nct orice combinaie
liniar de dou polinoame de mai multe variabile a i b [19] Anderson JA (2001). Discrete Mathematics with Combinatorics. Upper Saddle River, NJ: Prentice Hall. pp.
pot exprimate ca multipli ai generatoarelor
109119. ISBN 0-13-086998-8
sa + tb = k mkgk
f = r + k qkgk
dei polinoamele ct qk pot s nu e unice.[143] Mulimea acestor polinoame generatoare se numete baz
Grbner.[144]
Note
[1] Thomas L. Heath, The Thirteen Books of Euclids Elements, 2nd ed. [Facsimile. Original publication: Cambridge University Press, 1925], 1956, Dover Publications
[2] Stark, p. 16.
[3] Stark, p. 21.
[4] LeVeque, p. 32.
[5] Leveque, p. 31.
[6] Grossman JW (1990). Discrete Mathematics. New York:
Macmillan. p. 213. ISBN 0-02-348331-8
[7] Schroeder, pp. 2122.
[8] Schroeder, p. 19.
[9] Ogilvy CS, Anderson JT (1966). Excursions in number
theory. New York: Oxford University Press. pp. 2729.
Library of Congress Control Number 66-14484
[10] Schroeder, pp. 216219.
[11] Leveque, p. 33.
[12] Stark, p. 25.
[13] Ore, pp. 4748.
15
[38] Becker O (1933). Eudoxus-Studien I. Eine voreuklidische Proportionslehre und ihre Spuren bei Aristoteles und
Euklid. Quellen und Studien zur Geschichte der Mathematik B 2: 311333.
[39] Stillwell, p. 31.
[64] Koshy T (2002). Elementary Number Theory with Applications. Burlington, MA: Harcourt/Academic Press. pp.
167169. ISBN 0-12-421171-2
[65] Bach E, Shallit J (1996). Algorithmic number theory.
Cambridge, MA: MIT Press. pp. 7073. ISBN 0-26202405-5
[53] Cipra BA (16 mai 2000). The Best of the 20th Century:
Editors Name Top 10 Algorithms. SIAM News (Society
for Industrial and Applied Mathematics) 33 (4).
[54] englez {{{1}}}Cole AJ, Davie AJT (1969). A game based on the Euclidean algorithm and a winning strategy for
it. Math. Gaz. 53: 354357. doi:10.2307/3612461.
[83] Shor PW (1997). Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum
Computer. SIAM J. Sci. Statist. Comput. 26: 1484.
[84] Dixon JD (1981).
Asymptotically fast factorization of integers. Math. Comput. 36: 255260.
doi:10.2307/2007743.
[85] Lenstra Jr. HW (1987). Factoring integers with elliptic curves. Annals of Mathematics 126: 649673.
doi:10.2307/1971363.
[86] Knuth, pp. 380384.
[87] Knuth, pp. 339364.
[88] Lam G (1844). Note sur la limite du nombre des divisions dans la recherche du plus grand commun diviseur
entre deux nombres entiers. Comptes Rendus Acad. Sci.
19: 867870.
[89] Grossman H (1924). On the Number of Divisions in Finding a G.C.D.. The American Mathematical Monthly 31:
443. doi:10.2307/2298146.
16
NOTE
[90] Honsberger R (1976). Mathematical Gems II. The [116] Knuth, p. 328.
Mathematical Association of America. pp. 5457. ISBN
[117] Lehmer DH (1938). Euclids Algorithm for Large Num0-88385-302-7
bers. The American Mathematical Monthly 45: 227233.
doi:10.2307/2302607.
[91] Knuth, p. 344.
[92] Ore, p. 45.
[93] Knuth, p. 343.
[94] Mollin, p. 21.
[95] LeVeque, p. 35.
[96] Mollin, pp. 2122.
[97] Knuth, p. 353.
[118] Sorenson J (1994). Two fast GCD algorithms. J. Algorithms 16: 110144. doi:10.1006/jagm.1994.1006.
[119] Weber K (1995).
The accelerated GCD algorithm. ACM Trans. Math. Soft. 21: 111122.
doi:10.1145/200979.201042.
[120] Aho A, Hopcroft J, Ullman J (1974). The Design and
Analysis of Computer Algorithms. New York: Addison
Wesley. pp. 300310
[121] Schnhage A (1971). Schnelle Berechnung von Kettenbruchentwicklungen. Acta Informatica 1: 139144.
doi:10.1007/BF00289520.
Tonkov T (1974). On the average length of nite continued fractions. Acta arithmetica 26: 4757.
[122] Cesari G (1998). Parallel implementation of Schnhages integer GCD algorithm. in G. Buhler. AlgorithPorter JW (1975). On a Theorem of Heilbronn. Mamic Number Theory: Proc. ANTS-III, Portland, OR. New
thematika 22: 2028.
York: Springer-Verlag. pp. 6476 Volume 1423 in LecKnuth DE (1976). Evaluation of Porters Constant.
ture notes in Computer Science.
Computers and Mathematics with Applications 2: 137
[123] Stehl D, Zimmermann P (2005). Gals accurate tables
139. doi:10.1016/0898-1221(76)90025-0.
method revisited. Proceedings of the 17th IEEE SympoDixon JD (1970). The Number of Steps in the Eusium on Computer Arithmetic (ARITH-17). Los Alamitos,
clidean Algorithm. J. Number Theory 2: 414422.
CA: IEEE Computer Society Press
doi:10.1016/0022-314X(70)90044-2.
[124] Mller N (2008). On Schnhages algorithm and subquaHeilbronn HA (1969). On the Average Length of a Class
dratic integer gcd computation. Mathematics of Compuof Finite Continued Fractions. in Paul Turn. Number
tation 77: 589607. doi:10.1090/S0025-5718-07-02017Theory and Analysis. New York: Plenum. pp. 8796.
0.
Library of Congress Control Number 68-8991
[125] Boyer CB, Merzbach UC (1991). A History of MathemaKnuth, p. 354.
tics (ed. 2nd). New York: Wiley. pp. 116117. ISBN
0-471-54397-7
Norton GH (1990). On the Asymptotic Analysis of the
Euclidean Algorithm. Journal of Symbolic Computation [126] Cajori F (1894). A History of Mathematics. New York:
Macmillan. p. 70
10: 5358. doi:10.1016/S0747-7171(08)80036-3.
[102]
[103]
[104]
[105]
17
[136] Harper M, Murty, MR (2004). Euclidean Rings of Algebraic Integers. Canadian Journal of Mathematics 56:
7176.
[137] Stillwell J (2003). Elements of Number Theory. New
York: Springer-Verlag. pp. 151152. ISBN 0-38795587-9
[138] Yamada Y (2007). Generalized rational blow-down, torus
knots, and Euclidean algorithm. arXiv:0708.2316v1.
[139] Conway, John (1970). An enumeration of knots and links, and some of their algebraic properties. Computational Problems in Abstract Algebra (Proc. Conf., Oxford,
1967). Pergamon. pp. 329358
[140] Jategaonkar AV (1969). Rings with transnite left division algorithm. Bull. Amer. Math. Soc. 75: 559561.
doi:10.1090/S0002-9904-1969-12242-1.
[141] Cox, p. 65.
[142] Cox, pp. 7379.
[143] Cox, pp. 7986.
[144] Cox, p. 74.
Bibliograe
Cohen H (1993). A Course in Computational Algebraic Number Theory. New York: SpringerVerlag. ISBN 0-387-55640-0. http://books.google.
com/books?id=hXGr-9l1DXcC
Cohn H (1962). Advanced Number Theory. New
York: Dover. ISBN 0-486-64023-X. http://books.
google.com/books?id=yMGeElJ8M0wC
Cormen TH, Leiserson CE, Rivest RL, and Stein C
(2001). Introduction to Algorithms (ed. 2nd). MIT
Press and McGrawHill. ISBN 0262032937. http:
//books.google.com/books?id=NLngYyWFl_YC
Cox D, Little J, and O'Shea D (1997). Ideals, Varieties, and Algorithms: An Introduction to Computational Algebraic Geometry and Commutative Algebra (ed. 2nd). Springer-Verlag. ISBN 0387-94680-2. http://books.google.com/books?id=
7eLkq0wQytAC
Dirichlet PGL (1894). Richard Dedekind. ed. Vorlesungen ber Zahlentheorie. Braunschweig: Vieweg
Hardy GH, Wright EM [revised by D.R. HeathBrown and J.H. Silverman]. (2008). An Introduction to the Theory of Numbers (ed. 6th). Oxford:
Clarendon Press. http://books.google.com/books?
id=rey9wfSaJ9EC
Knuth D (1997). The Art of Computer Programming, Volume 2: Seminumerical Algorithms (ed.
3rd). AddisonWesley. ISBN 0201896842
10 Legturi externe
Demonstraii ale algoritmului lui Euclid
Eric W. Weisstein,
MathWorld.
Euclidean Algorithm la
18
10
LEGTURI EXTERNE
19
Animaie a algoritmului. Dreptunghiul verde iniial are dimensiunile a = 1071 i b = 462. El se mparte n ptrate de dimensiune 462462 pn rmne un dreptunghi 462147. Acesta e
mprit mai departe n ptrate 147147 pn rmne un dreptunghi 21147. Acest al treilea dreptunghi este mprit n ptrate
2121, i nu rmne niciun rest. Deci 21 este cel mai mare divizor comun al lui 1071 i 462.
Gracul unei ecuaii diofantice, 9x + 12y = 483. Soluiile sunt
artate ca cercuri albastre.
20
10
LEGTURI EXTERNE
21
11
11.1
Algoritmul lui Euclid Surs: https://ro.wikipedia.org/wiki/Algoritmul_lui_Euclid?oldid=10334179 Contribuitori: Gutza, Orioane, RebelRobot, Andrei Stroe, Strainubot, GEO, Victor Blacus, Thijs!bot, Turbojet, Liviu Savastru, Gik, Geluzamolxis, FiriBot, Luckas-bot,
ArkBot, Rubinbot, ArthurBot, Xqbot, RibotBOT, Ionutzmovie, Nerissa-Marie, EmausBot, Ebrambot, WikitanvirBot, MerlIwBot, Sebastianpin, L.A. (AWB), GT, Addbot, BreakBot, XXN-bot i Anonim: 8
11.2
Images
11.3
Content license