Euklidesen algoritmo

Euklidesen algoritmoa, matematikan, bi zenbakiren zatitzaile komunetako handiena ( z k h {\displaystyle zkh} ) kalkulatzeko erabiltzen den metodo bat da. Euklidesek deskribatu zuen lehenengo aldiz bere Elementuak obran (K.a. 300). Euklidesen algoritmo hedatuarekin, gainera, zatitzaile komunetako handiena emandako bi zenbakien konbinazio lineal moduan adierazteko koefizienteak kalkula daitezke. Algoritmoa hainbat arlotan aplikatzen da; aljebran, zenbaki-teorian eta informatikan, esaterako.

Euklidesen jatorrizko algoritmoa

AB eta CD segmentu neurgarriak

Grekoek matematikari buruz zuten ikuspuntuaren arabera, zenbakiak magnitude geometrikoak dira. Geometria grekoak bi segmenturen neurgarritasuna aztertzen zuen: bi segmentu (zenbaki) AB eta CD neurgarriak dira hirugarren PQ segmentu bat existitzen bada zein aurreko bien barruan egokitzen den n zenbaki osoa adina aldiz, hau da, PQ-k AB eta CD segmentuak neurtzen baditu.

Edozein segmentu bikote ez da neurgarria; pitagorikoek aurkitu zuten moduan, karratuaren diagonala eta aldea ez dira neurgarriak. Bi segmentu neurgarriak direnean, haien arteko neurri komun handiena topatu nahi izaten da.

Euklidesek bere Elementuak lanaren VII liburuko 2. proposizioan bi segmenturen (zenbakiren) neurri komun handiena topatzeko metodo bat deskribatzen du, zenbakiak haien artean lehenak ez diren kasurako.

« Elkarren artean lehenak ez diren bi zenbakiren gehienezko neurri komuna aurkitzeko.

Izan bitez AB, CD emandako bi zenbaki elkarrekiko ez-lehenak. Bada, AB, CD zenbakien neurri komun handiena aurkitu behar da.

»
Euklides. Elementuak VII.2

Metodoa termino geometrikoetan azaldu zen garai hartan. Gaur egungo hizkuntza modernoan algoritmoa horrela deskribatzen da:

Euklidesen jatorrizko algoritmoaren adibidea
  1. Izan bitez AB eta CD bi segmentu, non AB>CD betetzen den. AB-ri CD kentzen diogu behin eta berriz posiblea den bitartean. Amaieran hondarrik geratzen ez bada, orduan CD da neurri komun handiena.
  2. EA hondarra geratzen bada, CD baino txikiagoa izango da eta prozesua errepika daiteke; CD-ri EA kenduko zaio behin eta berriz posiblea den bitartean. Azkenean hondarrik gelditzen ez bada, EA izango da neurri komuna. Bestela, EA baino txikiagoa den FC hondar berria lortuko da.
  3. Prozesua errepikatu behar da hondarrik geratuko ez den arte. Lortutako azken hondarra da neurri komun handiena.

Euklidesen algoritmoa

Zatiketa Euklidearraren definizioaren arabera, bi zenbaki oso a {\displaystyle a} eta b {\displaystyle b} izanik, b > 0 {\displaystyle b>0} , beste bi zenbaki oso q {\displaystyle q} eta r {\displaystyle r} existitzen dira eta bakarrak dira non

a = b q + r {\displaystyle a=bq+r}

betetzen den, 0 r < | b | {\displaystyle 0\leq r<|b|} izanik eta b {\displaystyle b} -ren balio absolutua | b | {\displaystyle |b|} den. Hau da, a {\displaystyle a} zenbaki osoa b {\displaystyle b} zenbaki osoaz zatitzean q {\displaystyle q} zatidura eta r {\displaystyle r} hondarra lortzen dira.

Euklidesen algoritmoa zatiketa euklidearrean oinarritzen da eta bi zenbaki osoren zatitzaile komunetako handiena kalkulatzeko balio du. a {\displaystyle a} eta b {\displaystyle b} bi zenbakiren zatitzaile komunetako handiena adierazteko erabiltzen den notazioa z k h ( a , b ) {\displaystyle zkh(a,b)} da.

Euklidesen algoritmoaren oinarrizko printzipioa z k h ( a , b ) = z k h ( b , r ) {\displaystyle zkh(a,b)=zkh(b,r)} da. Bertatik ondorioztatzen da z k h ( a , 0 ) = a {\displaystyle zkh(a,0)=a} dela. Hortaz, Euklidesen algoritmoa erabiliz a {\displaystyle a} eta b {\displaystyle b} bi zenbakiren z k h ( a , b ) {\displaystyle zkh(a,b)} zatitzaile komunetako handiena horrela kalkulatzen da:

  1. b = 0 {\displaystyle b=0} bada z k h ( a , b ) = a {\displaystyle zkh(a,b)=a} da.
  2. Bestela, z k h ( a , b ) = z k h ( b , r ) {\displaystyle zkh(a,b)=zkh(b,r)} da, r {\displaystyle r} izanik a {\displaystyle a} eta b {\displaystyle b} -ren arteko zatiketa euklidearraren hondarra.

Demagun a = r 0 {\displaystyle a=r_{0}} eta b = r 1 {\displaystyle b=r_{1}} notazioaz adierazten direla. z k h ( a , b ) {\displaystyle zkh(a,b)} kalkulatzeko prozedura orokorra honakoa da:

Urratsa a b Eragiketa q r Esanahia
1 r 0 {\displaystyle r_{0}} r 1 {\displaystyle r_{1}} r 0 {\displaystyle r_{0}} zati r 1 {\displaystyle r_{1}} q 1 {\displaystyle q_{1}} r 2 {\displaystyle r_{2}} z k h ( r 0 , r 1 ) = z k h ( r 1 , r 2 ) {\displaystyle zkh(r_{0},r_{1})=zkh(r_{1},r_{2})}
2 r 1 {\displaystyle r_{1}} r 2 {\displaystyle r_{2}} r 1 {\displaystyle r_{1}} zati r 2 {\displaystyle r_{2}} q 2 {\displaystyle q_{2}} r 3 {\displaystyle r_{3}} z k h ( r 1 , r 2 ) = z k h ( r 2 , r 3 ) {\displaystyle zkh(r_{1},r_{2})=zkh(r_{2},r_{3})}
3 r 2 {\displaystyle r_{2}} r 3 {\displaystyle r_{3}} r 2 {\displaystyle r_{2}} zati r 3 {\displaystyle r_{3}} q 3 {\displaystyle q_{3}} r 4 {\displaystyle r_{4}} z k h ( r 2 , r 3 ) = z k h ( r 3 , r 4 ) {\displaystyle zkh(r_{2},r_{3})=zkh(r_{3},r_{4})}
...
n {\displaystyle n} r n 1 {\displaystyle r_{n-1}} r n {\displaystyle r_{n}} r n 1 {\displaystyle r_{n-1}} zati r n {\displaystyle r_{n}} q n {\displaystyle q_{n}} r n + 1 {\displaystyle r_{n+1}} z k h ( r n 1 , r n ) = z k h ( r n , r n + 1 ) {\displaystyle zkh(r_{n-1},r_{n})=zkh(r_{n},r_{n+1})}
n + 1 {\displaystyle n+1} r n {\displaystyle r_{n}} r n + 1 {\displaystyle r_{n+1}} r n {\displaystyle r_{n}} zati r n + 1 {\displaystyle r_{n+1}} q n + 1 {\displaystyle q_{n+1}} 0 {\displaystyle 0} z k h ( r n , r n + 1 ) = z k h ( r n + 1 , 0 ) {\displaystyle zkh(r_{n},r_{n+1})=zkh(r_{n+1},0)}

Hondarra txikituz doanez, azkenean 0 hondarra lortuko da eta prozedura amaituko da. a {\displaystyle a} eta b {\displaystyle b} zenbakien zatitzaile komunetako handiena 0 {\displaystyle 0} ez den azken hondarra da: r n + 1 {\displaystyle r_{n+1}} .

z k h ( a , b ) = r n + 1 {\displaystyle zkh(a,b)=r_{n+1}}

Adibidea.

a = 2366 {\displaystyle a=2366} eta b = 273 {\displaystyle b=273} izanik, z k h ( 2366 , 273 ) {\displaystyle zkh(2366,273)} horrela kalkulatzen da:

Urratsa a b Eragiketa q r Esanahia
1 2366 {\displaystyle 2366} 273 {\displaystyle 273} 2366 {\displaystyle 2366} zati 273 {\displaystyle 273} 8 {\displaystyle 8} 182 {\displaystyle 182} z k h ( 2366 , 273 ) = z k h ( 273 , 182 ) {\displaystyle zkh(2366,273)=zkh(273,182)}
2 273 {\displaystyle 273} 182 {\displaystyle 182} 273 {\displaystyle 273} zati 182 {\displaystyle 182} 1 {\displaystyle 1} 91 {\displaystyle 91} z k h ( 273 , 182 ) = z k h ( 182 , 91 ) {\displaystyle zkh(273,182)=zkh(182,91)}
3 182 {\displaystyle 182} 91 {\displaystyle 91} 182 {\displaystyle 182} zati 91 {\displaystyle 91} 2 {\displaystyle 2} 0 {\displaystyle 0} z k h ( 182 , 91 ) = z k h ( 91 , 0 ) {\displaystyle zkh(182,91)=zkh(91,0)}

z k h ( 2366 , 273 ) = z k h ( 273 , 182 ) = z k h ( 182 , 91 ) = z k h ( 91 , 0 ) {\textstyle zkh(2366,273)=zkh(273,182)=zkh(182,91)=zkh(91,0)} sekuentziaren bidez, honakoa ondorioztatzen da: z k h ( 2366 , 273 ) = z k h ( 91 , 0 ) {\displaystyle zkh(2366,273)=zkh(91,0)} eta z k h ( 91 , 0 ) = 91 {\displaystyle zkh(91,0)=91} denez, z k h ( 2366 , 273 ) = 91 {\displaystyle zkh(2366,273)=91} da.

Orokortasuna

Euklidesen algoritmoak ez du zenbaki arruntetarako soilik balio; hondarra uzten duen zatiketa bat dagoen beste kasuetara ere orokor daiteke. Koefiziente arrazionalak dituzten polinomioen arteko zatiketa euklidearra ere definitu daitekeenez, haien arteko zatitzaile komunetako handiena kalkula daiteke.

Adibidea.

Euklidesen algoritmoaren bidez P ( x ) = x 5 + 2 x 3 + x {\displaystyle P(x)=x^{5}+2x^{3}+x} eta Q ( x ) = x 4 1 {\displaystyle Q(x)=x^{4}-1} polinomioen arteko zatitzaile komunetako handiena horrela kalkulatzen da:

Urratsa Eragiketa Esanahia
1 x 5 + 2 x 3 + x {\displaystyle x^{5}+2x^{3}+x} zati x 4 1 {\displaystyle x^{4}-1} ; hondarra: 2 x 3 + 2 x {\displaystyle 2x^{3}+2x} z k h ( x 5 + 2 x 3 + x , x 4 1 ) = z k h ( x 4 1 , 2 x 3 + 2 x ) {\displaystyle zkh(x^{5}+2x^{3}+x,x^{4}-1)=zkh(x^{4}-1,2x^{3}+2x)}
2 x 4 1 {\displaystyle x^{4}-1} zati 2 x 3 + 2 x {\displaystyle 2x^{3}+2x} ; hondarra: x 2 1 {\displaystyle -x^{2}-1} z k h ( x 4 1 , 2 x 3 + 2 x ) = z k h ( 2 x 3 + 2 x , x 2 1 ) {\displaystyle zkh(x^{4}-1,2x^{3}+2x)=zkh(2x^{3}+2x,-x^{2}-1)}
3 2 x 3 + 2 x {\displaystyle 2x^{3}+2x} zati x 2 1 {\displaystyle -x^{2}-1} ; hondarra: 0 {\displaystyle 0} z k h ( 2 x 3 + 2 x , x 2 1 ) = z k h ( x 2 1 , 0 ) {\displaystyle zkh(2x^{3}+2x,-x^{2}-1)=zkh(-x^{2}-1,0)}

Hortaz, P ( x ) {\displaystyle P(x)} eta Q ( x ) {\displaystyle Q(x)} polinomioen zatitzaile komunetako handiena x 2 1 {\displaystyle -x^{2}-1} dela ondorioztatzen da.

Deskribapen formala

Algoritmoa modu formalagoan adierazteko sasikodea erabil daiteke. Kasu honetan, " x mod y {\displaystyle x\;{\bmod {\;}}y} " adierazpenaren esanahia " x {\displaystyle x} zati y {\displaystyle y} eragiketarekin lortutako hondarra" da (ikus Aritmetika modular).

Euklides algoritmoa


Algoritmo hau ez da eraginkorra konputagailuan inplementatua izateko, r i {\displaystyle r_{i}} balio guztiak gordetzea eskatzen duelako.

Euklidesen algoritmo hedatua

Bi zenbaki osoren zatitzaile komunetako handiena haien konbinazio lineal moduan idatz daiteke. Formalki, a {\displaystyle a} eta b {\displaystyle b} bi zenbaki oso izanik, z k h ( a , b ) = a s + b t {\displaystyle \mathrm {zkh} (a,b)=as+bt} betetzen duten s {\displaystyle s} eta t {\displaystyle t} koefiziente osoak existitzen dira, a 0 {\displaystyle a\neq 0} edo b 0 {\displaystyle b\neq 0} izanik. Gainera, z k h ( a , b ) {\displaystyle \mathrm {zkh} (a,b)} da a {\displaystyle a} eta b {\displaystyle b} zenbakien konbinazio lineal moduan idatz daitekeen zenbaki oso positiborik txikiena. s {\displaystyle s} eta t {\displaystyle t} koefizienteak ez dira bakarrak.

Euklidesen algoritmo hedatuari esker, z k h ( a , b ) {\displaystyle \mathrm {zkh} (a,b)} kalkulatzeaz gain s {\displaystyle s} eta t {\displaystyle t} koefiziente osoak kalkula daitezke.

Oinarrizko printzipioak

Euklidesen algoritmo hedatua azaltzeko, hainbat modu daude. Erabilienetako bat honako hau da:

  1. Euklidesen algoritmoa erabiltzea. Urrats bakoitzean, a {\displaystyle a} zenbakia b {\displaystyle b} zenbakiaz zatitzean, q {\displaystyle q} zatidura eta r {\displaystyle r} hondarra lortzen dira. a = b q + r {\displaystyle a=bq+r} ekuazioaren bidez adierazten da.
  2. Ekuazio bakoitzean r {\displaystyle r} hondarra askatzen da ( r = a b q {\displaystyle r=a-bq} ).
  3. Azken ekuazioaren hondarra azken-aurrekoan ordezkatzen da, eta azken-aurrekoa azken-aurrekoaren aurrekoan eta horrela lehenengo ekuaziora iritsi arte. Urrats bakoitzean r {\displaystyle r} hondarra zenbakien konbinazional lineal moduan adierazita agertuko da.

Aplikazioak

Zatikien sinplikazioa

Zatikiekin eragitean, sinplifikazioak egitea oso garrantzitsua gertatzen da. Esaterako, 65 91 {\displaystyle {\tfrac {65}{91}}} eta 5 7 {\displaystyle {\tfrac {5}{7}}} zatikiak baliokideak dira (ikus Zenbaki arrazional). Izan ere, c 0 {\displaystyle c\neq 0} bada, a b = c a c b {\displaystyle {\tfrac {a}{b}}={\tfrac {ca}{cb}}} zatikiak baliokideak dira. Oro har, a b {\displaystyle {\tfrac {a}{b}}} zatikia sinplifikatzeko, a {\displaystyle a} eta b {\displaystyle b} zenbakiak haien zatitzaile komunetako handienaz zatitu behar dira.

Adibidea.

166 249 {\displaystyle {\tfrac {166}{249}}} zatikia sinplifikatzeko, z k h ( 166 , 249 ) = 83 {\displaystyle zkh(166,249)=83} denez, 166 ÷ 83 = 2 {\displaystyle 166{\displaystyle \div }83=2} eta 249 ÷ 83 = 3 {\displaystyle 249{\displaystyle \div }83=3} zatiketak egiten dira, eta 166 249 {\displaystyle {\tfrac {166}{249}}} = 2 3 {\displaystyle {\tfrac {2}{3}}} baliokideak direla ondorioztatzen da.

Zatiki jarraituak

Euklidesen algoritmoa aplikatzean egiten den zatiketa euklidear sorta a b {\displaystyle {\tfrac {a}{b}}} zatikia zatiki jarraitu moduan adierazteko erabil daiteke. Izan ere, a = b q + r {\displaystyle a=bq+r} eta r 0 {\displaystyle r\neq 0} badira, zera betetzen da:

a b = q + 1 b r {\displaystyle {\frac {a}{b}}=q+{\frac {1}{\tfrac {b}{r}}}}

Adibidea.

a b = 93164 5826 {\displaystyle {\tfrac {a}{b}}={\tfrac {93164}{5826}}} zatikia izanik, z k h ( 93164 , 5826 ) {\displaystyle zkh(93164,5826)} Euklidesen algoritmoa erabiliz kalkulatzean, honako zatiketa euklidear sorta egiten da:

Urratsa Eragiketa q r Esanahia
1 93164 {\displaystyle 93164} zati 5826 {\displaystyle 5826} 15 {\displaystyle 15} 5774 {\displaystyle 5774} 93164 = 5826 × 15 + 5774 {\displaystyle 93164=5826\times 15+5774}
2 5826 {\displaystyle 5826} zati 5774 {\displaystyle 5774} 1 {\displaystyle 1} 52 {\displaystyle 52} 5826 = 5774 × 1 + 52 {\displaystyle 5826=5774\times 1+52}
3 5774 {\displaystyle 5774} zati 52 {\displaystyle 52} 111 {\displaystyle 111} 2 {\displaystyle 2} 5774 = 52 × 111 + 2 {\displaystyle 5774=52\times 111+2}
4 52 {\displaystyle 52} zati 2 {\displaystyle 2} 26 {\displaystyle 26} 0 {\displaystyle 0} 52 = 2 × 26 + 0 {\displaystyle 52=2\times 26+0}

Ekuazio horiek guztiak era honetan ere idatz daitezke:

  1. 93164 5826 = 15 + 1 5826 5774 {\displaystyle {\frac {93164}{5826}}=15+{\frac {1}{\tfrac {5826}{5774}}}}
  2. 5826 5774 = 1 + 1 5774 52 {\displaystyle {\frac {5826}{5774}}=1+{\frac {1}{\tfrac {5774}{52}}}}
  3. 5774 52 = 111 + 1 52 2 {\displaystyle {\frac {5774}{52}}=111+{\frac {1}{\tfrac {52}{2}}}}
  4. 52 2 = 26 {\displaystyle {\frac {52}{2}}=26}

Bigarren ekuazioa lehenengoan ordezkatuz gero, honakoa lortzen da:

93164 5826 = 15 + 1 1 + 1 5774 52 {\displaystyle {\frac {93164}{5826}}=15+{\frac {1}{1+{\frac {1}{\tfrac {5774}{52}}}}}}

Gainerakoak ere ordenatuz, honako adierazpena lortzen da:

93164 5826 = 15 + 1 1 + 1 111 + 1 26 {\displaystyle {\frac {93164}{5826}}=15+{\frac {1}{1+{\frac {1}{111+{\tfrac {1}{26}}}}}}}

Oro har, zera baiezta daiteke:

a b = q 1 + 1 q 2 + 1 q 3 + 1 . . . q n 1 + 1 q n {\displaystyle {\frac {a}{b}}=q_{1}+{\frac {1}{q_{2}+{\frac {1}{q_{3}+{\frac {1}{...q_{n-1}+{\tfrac {1}{q_{n}}}}}}}}}}

Biderketarekiko alderantzizko modular

Artikulu nagusia: Biderketarekiko alderantzizko modular.

Bi zenbaki oso a {\displaystyle a} eta b {\displaystyle b} kongruenteak dira modulu m {\displaystyle m} , m {\displaystyle m} balioaz zatitzean hondar bera lortzen bada. Adibidez, 7 eta 12 kongruenteak dira modulu 5, 7 zenbakia eta 12 zenbakia 5ez zatitzean 2 hondarra lortzen delako. a {\displaystyle a} eta b {\displaystyle b} zenbakiak kongruenteak direla modulu m {\displaystyle m} adierazteko

a b ( mod m ) {\displaystyle a\equiv b{\pmod {m}}}

notazioa erabiltzen da. Aurreko adibideko kongruentzia, beraz, horrela adierazten da:

7 12 ( mod 5 ) {\displaystyle 7\equiv 12{\pmod {5}}} .

Demagun a , b {\displaystyle a,b} eta m {\displaystyle m} balioak ezagunak direla, baina honako kongruentzia betetzen duen x {\displaystyle x} ezezaguna dela:

a x b ( mod m ) {\displaystyle ax\equiv b{\pmod {m}}}

a 1 a 1 ( mod m ) {\displaystyle a^{-1}a\equiv 1{\pmod {m}}} betetzen duen a 1 {\displaystyle a^{-1}} balioa aurkitu behar da. Horrela, aurreko ekuazioa a 1 {\displaystyle a^{-1}} -ekin biderkatuz, nahi den soluzioa lortuko da:

x a 1 ( mod m ) {\displaystyle x\equiv a^{-1}{\pmod {m}}}

a 1 {\displaystyle a^{-1}} balioa a {\displaystyle a} ren alderantzizkoa modulu m {\displaystyle m} dela esaten da.

Balio hori ez da beti existitzen. Esaterako, a = 4 {\displaystyle a=4} eta m = 6 {\displaystyle m=6} balioetarako ez da existitzen a 1 {\displaystyle a^{-1}} zenbaki osorik non a 1 4 1 ( mod 6 ) {\displaystyle a^{-1}4\equiv 1{\pmod {6}}} betetzen den. Izan ere, a 1 {\displaystyle a^{-1}} balioa existitzeko z k h ( a , m ) = 1 {\displaystyle zkh(a,m)=1} bete behar da, hau da, zenbakiak elkarrekiko lehenak izan behar dute. Euklidesen algoritmo hedatua erabiltzean ( b = m {\displaystyle b=m} ) , 1 = a s + m t {\displaystyle 1=as+mt} lortzen bada, orduan s {\displaystyle s} balioa a {\displaystyle a} ren alderantzizkoa da, modulu m {\displaystyle m} . Adibidez, honako ekuazio hau ebatzi nahi bada:

5 x 2 ( mod 9 ) {\displaystyle 5x\equiv 2{\pmod {9}}}

Orduan, Euklidesen algoritmo hedatuarekin z k h ( 5 , 9 ) = 1 = 5 ( 2 ) + 9 ( 1 ) {\displaystyle zkh(5,9)=1=5(2)+9(-1)} lortzen da. z k h ( 5 , 9 ) = 1 {\displaystyle zkh(5,9)=1} denez, 5-ak badu alderantzizkoa modulu 9. Gainera, 1 = 5 ( 2 ) + 9 ( 1 ) {\displaystyle 1=5(2)+9(-1)} denez, alderantzizko hori 2 da. Hortaz,

x 2 ( 2 ) ( mod 9 ) {\displaystyle x\equiv 2(2){\pmod {9}}} ,

hau da, x = 4 {\displaystyle x=4} da.

Bézouten Identitatea

Artikulu nagusia: Bézouten identitate.

Bézouten identitateak zera dio: zeroren ezberdinak diren a {\displaystyle a} eta b {\displaystyle b} bi zenbaki oso eta d {\displaystyle d} haien zatitzaile komun handiena izanik, honakoa betetzen duten x {\displaystyle x} eta y {\displaystyle y} bi zenbaki oso existitzen direla:

a x + b y = d {\displaystyle ax+by=d}

x {\displaystyle x} eta y {\displaystyle y} koefizienteak eta d = z k h ( a , b ) {\displaystyle d=zkh(a,b)} haien zatitzaile komun handiena Euklidesen algoritmo hedatuaren bidez kalkula daitezke.

Algoritmoaren konplexutasuna

Lamé-ren teoremak baieztatzen du Euklidesen algoritmoa aplikatzean kasurik okerrena Fibonacci-ren segidako ondoz ondoko bi zenbakiren zatitzaile komunetako handiena kalkulatzean ematen dela.

Adibidea.

f 10 = 55 {\displaystyle f_{10}=55} eta f 11 = 89 {\displaystyle f_{11}=89} zenbakien zatitzaile komunetako handiena kalkulatzeko honako eragiketak egin behar dira:

Euklidesen algoritmoa aplikatzean egiten den zatiketa kopuruaren grafikoa. Gorriak eragiketa gutxi adierazten du; kolore urdinagoek, aldiz, eragiketa kopuru handiagoa adierazten dute.
Urratsa Eragiketa q r Esanahia
1 89 {\displaystyle 89} zati 55 {\displaystyle 55} 1 {\displaystyle 1} 34 {\displaystyle 34} z k h ( 89 , 55 ) = z k h ( 55 , 34 ) {\displaystyle zkh(89,55)=zkh(55,34)}
2 55 {\displaystyle 55} zati 34 {\displaystyle 34} 1 {\displaystyle 1} 21 {\displaystyle 21} z k h ( 55 , 34 ) = z k h ( 34 , 21 ) {\displaystyle zkh(55,34)=zkh(34,21)}
3 34 {\displaystyle 34} zati 21 {\displaystyle 21} 1 {\displaystyle 1} 13 {\displaystyle 13} z k h ( 34 , 21 ) = z k h ( 21 , 13 ) {\displaystyle zkh(34,21)=zkh(21,13)}
4 21 {\displaystyle 21} zati 13 {\displaystyle 13} 1 {\displaystyle 1} 8 {\displaystyle 8} z k h ( 21 , 13 ) = z k h ( 13 , 8 ) {\displaystyle zkh(21,13)=zkh(13,8)}
5 13 {\displaystyle 13} zati 8 {\displaystyle 8} 1 {\displaystyle 1} 5 {\displaystyle 5} z k h ( 13 , 8 ) = z k h ( 8 , 5 ) {\displaystyle zkh(13,8)=zkh(8,5)}
6 8 {\displaystyle 8} zati 5 {\displaystyle 5} 1 {\displaystyle 1} 3 {\displaystyle 3} z k h ( 8 , 5 ) = z k h ( 5 , 3 ) {\displaystyle zkh(8,5)=zkh(5,3)}
7 5 {\displaystyle 5} zati 3 {\displaystyle 3} 1 {\displaystyle 1} 2 {\displaystyle 2} z k h ( 5 , 3 ) = z k h ( 3 , 2 ) {\displaystyle zkh(5,3)=zkh(3,2)}
8 3 {\displaystyle 3} zati 2 {\displaystyle 2} 1 {\displaystyle 1} 1 {\displaystyle 1} z k h ( 3 , 2 ) = z k h ( 2 , 1 ) {\displaystyle zkh(3,2)=zkh(2,1)}
9 2 {\displaystyle 2} zati 1 {\displaystyle 1} 2 {\displaystyle 2} 0 {\displaystyle 0} z k h ( 2 , 1 ) = z k h ( 1 , 0 ) {\displaystyle zkh(2,1)=zkh(1,0)}

Ikusten denez, bi digituko bi zenbaki horietarako 9 zatiketa egin behar izan dira. Oro har, egindako zatiketa kopurua zenbakiek duten digito kopurua bider 5 baino altuagoa ez da inoiz izango.

Konplexutasun konputazionalari dagokionez, n {\displaystyle n} eta m {\displaystyle m} -ren z k h ( n , m ) {\displaystyle zkh(n,m)} kalkulatzeko O ( log n ) {\displaystyle O(\log n)} zatiketa egin beharko dira, n > m {\displaystyle n>m} izanik.

Brigitte Valleek frogatu zuen bi zenbakiak n {\displaystyle n} bitetan adieraz badaitezke, orduan bataz bestean egin beharreko zatiketa kopurua π 2 6 n {\displaystyle {\tfrac {\pi ^{2}}{6}}n} dela.

Hala ere, ez da nahikoa zatiketa kopurua ezagutzea. Aurretik aipatu den moduan, Euklidesen algoritmoak polinomioetan eta zenbaki osoetan funtzionatzen du eta, oro har, edozein eremu euklidearretan. Kasu bakoitzean, algoritmoaren konplexutasuna egin behar den zatiketa kopuruaren eta zatiketa bakoitza egitearen kostuaren mende dago. Polinomioen kasuan, egin beharreko zatiketa kopurua O ( log n ) {\displaystyle O(\log n)} da, n {\displaystyle n} polinomioen gradua izanik.

Bibliografia

  • von zur Gathen, Joachim; Gerhard, Jürgen (2003). «The Euclidean Algorithm». Modern Computer Algebra
  • Cambridge University Press. ISBN 0-521-82646-2.
  • Shoup, Victor (2008). «Euclid’s algorithm». A Computational Introduction to Number Theory and Algebra
  • Cambridge University Press. ISBN 978-0-521-85154-1.
  • Johnsonbaugh, Richard (2005). «Introducción a la teoría de números». Matemáticas Discretas. México: PEARSON EDUCACIÓN. ISBN 970-26-0637-3.
  • Ralph P. Grimaldi (1998). «Propiedades de los números enteros: Inducción matemática». Matemáticas Discreta y Combinatoria. México: Addison Wesley Longman de México. ISBN 968-444-324-2.
  • Lipschutz, Seymour; Lipson, Marc (2009). «Propiedades de los enteros». Matemáticas Discretas. McGraw-Hill. ISBN 978-970-10-7236-3.
  • Brassard, Gilles; Bratley, Paul (1997). «Análisis de algoritmos». Fundamentos de Algoritmia. Madrid: PRENTICE HALL. ISBN 84-89660-00-X.
  • Vallée, Brigitte (2002). «Dynamical Analysis of α-Euclidean Algorithms»
  • Journal of Algorithms 44 (1). ISSN 0196-6774 , pp. 246-285.
  • Cormen, Thomas; Leiserson, Charles; Rivest, Ronald; Stein, Clifford (2009). «Number-Theoretic Algorithms». Introduction to Algorithms. The MIT Press. ISBN 978-0-262-53305-8.
  • Barrera Mora, Fernando (2005). «Definiciones y resultados generales». Introducción a la Teoría de Grupos
  • Publicaciones Electrónicas de la Sociedad Matemática Mexicana. ISBN 968-9161-02-4.
  • Cárdenas, Humberto; Lluis, Emilio; Raggi, Francisco; Tomás, Francisco (2004). «Divisibilidad». Álgebra Superior. México: Trillas. ISBN 968-24-3783-0.
  • Pérez Seguí, María Luisa (2006). «Divisibilidad». Teoría de Números. Instituto de Matemáticas, UNAM. ISBN 970-32-1170-0.
  • Sánchez Velázquez, Jesús (1998). «Algoritmos para números grandes». Introducción al análisis de algoritmos. México: Trillas. ISBN 968-24-4341-5.
  • Baldor, Aurelio (2008). «Máximo común divisor». Álgebra. México: Grupo Editorial Patria. ISBN 978-970-817-000-0.

Euklidesen algoritmoa polinomioekin

Izan bitez f, g ∈ K[x] eta deg f ≥ deg g. Zatiketaren algoritmoa erabiliz, f = gh + r non r = 0 edo deg r < deg g den. Orduan,

  • r = 0 bada, g f-ren zatitzailea da eta bien zatitzaile komun handiena g-ren multiplo monikoa da;
  • r 6= 0 bada, f eta g-ren zatitzaile komunak eta g eta r-ren zatitzaile komunak berdinak dira.

Bigarren kasuan, zatiketaren algoritmoa erabil dezakegu g eta r-rako eta lortzen dugun hondar berria 0 ez bada, r-ren maila baino txikiagoa izango du. Behin eta berriro erabiliko dugu algoritmoa hondarra 0 izan arte. Hori noizbait gertatuko da eta orduantxe erabili dugun zatitzailea moniko eginez, lortu dugu zatitzaile komun handienaren definizioa betetzen duen polinomioa. Hala dela ikusteko, polinomio horrek Bézouten identitatea betetzen dela ondorioztatzen da lehenengo. Hori Euklidesen algoritmoak ematen du, zenbakien kasuan ikusi dugun moduan. Behin identitate hori eskutan, argi dago f eta g-ren edozein zatitzailek lortu dugun polinomioa zatituko duela.

Kanpo estekak

Autoritate kontrola
  • Wikimedia proiektuak
  • Wd Datuak: Q230848
  • Commonscat Multimedia: Euclidean algorithm / Q230848

  • Identifikadoreak
  • GND: 4659898-4
  • Hiztegiak eta entziklopediak
  • Britannica: url
  • Wd Datuak: Q230848
  • Commonscat Multimedia: Euclidean algorithm / Q230848