Eukleideen algoritmi

Wikipedia
Loikkaa: valikkoon, hakuun

Eukleideen algoritmin on keino, jonka avulla voidaan selvittää kahden kokonaisluvun suurin yhteinen tekijä (syt). Algoritmi perustuu jakoyhtälön perättäiseen käyttöön.

Eukleideen algoritmi etenee seuraavasti:

  • Ensin kirjoitetaan jakoyhtälö luvuilla a ja b
  • Seuraavaksi kirjoitetaan jakoyhtälö luvulle b ja edellisen jakoyhtälön jakojäännökselle
  • Toistetaan niin usein, että jakojäännökseksi saadaan nolla.
  • Lukujen a ja b suurin yhteinen tekijä on viimeisin nollasta eroava jakojäännös

Algoritmi[muokkaa | muokkaa wikitekstiä]

Olkoot luvut a ja b kokonaislukuja ja b erisuuri kuin nolla. Käyttämällä toistuvasti jakoyhtälöä saadaan:

 a = q_0 b + r_0, \ 0 < r_0 < |b|
 b = q_1 r_0 + r_1, \ 0 < r_1 < |r_0|
 r_0 = q_2 r_1 + r_2, \ 0 < r_2 < |r_1|
 r_1 = q_3 r_2 + r_3, \ 0 < r_3 < |r_2|
 r_2 = q_4 r_3 + r_4, \ 0 < r_4 < |r_3|
 r_3 = q_5 r_4 + r_5, \ 0 < r_5 < |r_4|

...

 r_{n-2} = q_n r_{n-1} + r_n, \ 0 < r_n < |r_{n-1}|
 r_{n-1} = q_{n+1} r_n + 0 \ .

Algoritmi päättyy, koska luvut r0, r1, ...,rn muodostavat aidosti vähenevän jonon positiivisia kokonaislukuja.

Viimeinen jakojäännös rn jakaa (tasan) luvut a ja b:

Alimmasta yhtälöstä rn jakaa luvun rn-1.
Koska  r_{n-2} = q_n r_{n-1} + r_n, niin rn jakaa luvun rn-2
Näin jatkamalla saadaan lopulta, että rn jakaa b:n ja a:n.

Jos luvuilla a ja b on yhteinen tekijä c, ts. sanoen a ja b ovat tasan jaollisia luvulla c, c jakaa luvun r0, r1, ... yllä olevien yhtälöiden nojalla. Näin siis c jakaa luvun rn, joka on siten yhteisistä tekijöistä suurin.

Esimerkkejä[muokkaa | muokkaa wikitekstiä]

Määritetään lukujen 112 ja 408 suurin yhteinen tekijä eli syt(112, 408).

Määritetään lukujen suurin yhteinen tekijä Eukleideen algoritmin avulla:

408=112\cdot \,3+72
112=72\cdot \,1+40
72=40\cdot \,1+32
40=32\cdot \,1+8
32=8\cdot \,4+0

Lukujen 112 ja 408 suurin yhteinen tekijä on siis kahdeksan eli syt(112, 408)=8.

Kiinalaisten käyttämä algoritmi[muokkaa | muokkaa wikitekstiä]

Kiinalaiset suorittivat saman algoritmin helmitaulussa seuraavasti:

Vähennä toistuvasti pienempi luku suuremmasta. Kun luvut ovat keskenään yhtä suuret, algoritmi päättyy ja kyseinen luku on suurin yhteinen tekijä.

Esimerkki etsitään syt(15,25).

25 = 1 * 15 + 10.
15 = 1 * 10 + 5.
10 = 2 * 5 + 0.

eli syt(15,25) = 5.

"Kiinalaisittain":

25 10 10 5
15 15 5 5

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]