Išplėstinis Euklido algoritmas
Straipsnis iš Vikipedijos, laisvosios enciklopedijos.
Išplėstinis Euklido algoritmas yra Euklido algoritmo tęsinys, skirtas rasti dviejų natūraliųjų skaičių , didžiausią bendrą daliklį, bei rasti sveikuosius , , tenkinančius
[taisyti] Algoritmas
Nemažindami bendrumo tarkime, kad a > b Tuomet a užsirašo kaip
a = bq + r, kur dalybos liekana tenkina 0 < r < b. Analogiškai
b = rq1 + r1, kur 0 < r1 < r
r = r1q2 + r2, kur 0 < r2 < r1
...
rk = rk + 1qk + 2 + rk + 2, kur 0 < rk + 2 < rk + 1
rk + 1 = rk + 2qk + 3
Iš r > r1 > ... > rk + 2 seka, kad kažkada gausime dalybos liekaną lygią 0. Tuomet paskutinioji nenulinė liekana rk + 2 ir bus didžiausias bendrasis daliklis.
Iš prieš paskutinės lygybės galime išreikšti rk + 2 per rk + 1 ir rk. Iš dar ankstesnės galima išreikšti rk + 1 per rk ir rk − 1. Įstatę į pirmąją išraišką gausime rk + 2 išraišką per rk ir rk − 1. Taip toliau vis tęsdami gausime rk + 2 išraišką per a, b, t.y. rasime x, y, tenkinančius ax + by = dbd(a,b)
[taisyti] Pavyzdys
Imkime a = 46, b = 32. Nuosekliai atlikdami veiksmus gauname:
46 = 32 × 1 + 14;
32 = 14 × 2 + 4;
14 = 4 × 3 + 2;
4 = 2 × 2;
Gavome, kad dbd(46,32) = 2.
2 = 14 + 4 × (-3) = 14 + (32 + 14× (-2)) × (-3) = 32 × (-3) + 14 × 7 = 32 ×(-3) + (46 – 32) × 7 = 32 ×(-10) + 46 × 7.