Rozszerzony algorytm euklidesowy

Rozszerzony algorytm euklidesowy to algorytm obliczania liczb całkowitych xxx i yyy takich, że

ax+by=gcd(a,b)ax + by = ∗

gcd(a,b)ax+by=gcd(a,b)

dane aaa i bbb.

Istnienie takich liczb całkowitych gwarantuje lemat Bézouta.

Rozszerzony algorytm euklidesowy można traktować jako odwrotność wykładania modułowego.

Odwracając kroki w algorytmie euklidesowym, można znaleźć takie liczby całkowite xxx i yyy. Cała idea polega na tym, aby zacząć od GCD i rekurencyjnie pracować naszą drogę wstecz. Można to zrobić, traktując liczby jako zmienne, aż w końcu otrzymamy wyrażenie, które jest kombinacją liniową naszych początkowych liczb. Zrobimy to na przykładzie, którego użyliśmy powyżej.

Zaczynamy od naszego GCD. Zapisujemy ją w kategoriach poprzednich dwóch wyrażeń:

2=26-2×12.2 = 26 – 2 razy 12 .2=26-2×12.

Zastępujemy dla 121212 biorąc nasz poprzedni wiersz (38=1×26+12)(38 = 1 \times 26 + 12)(38=1×26+12) i pisząc go w kategoriach 12:

2=26-2×(38-1×26).2 = 26 – 2 \times (38 – 1 \times 26). 2=26-2×(38-1×26).

Zbierz podobne wyrażenia, te 262626, i mamy

2=3×26-2×38.2 = 3 razy 26 – 2 razy 38. 2=3×26-2×38.

Powtórz ten proces:

2=3×(102-2×38)-2×38.2 = 3 razy (102 – 2 razy 38) – 2 razy 38.2=3×(102-2×38)-2×38.

Wynikiem końcowym jest nasza odpowiedź:

2=3×102-8×38.2 = 3 razy 102 – 8 razy 38.2=3×102-8×38.

Więc xxx i yyy są równe 333 i -8-8-8.

Znajdź dwie liczby całkowite aaa i bbb takie, że 1914a+899b=gcd(1914,899).1914a + 899b = ∗gcd(1914,899). 1914a+899b=gcd(1914,899).

Najpierw użyj algorytmu Euklidesa, aby znaleźć GCD:

1914=2×899+116899=7×116+87116=1×87+2987=3×29+0.\begin{aligned}1914 &= 2 razy 899 + 116 \899 &= 7 razy 116 + 87 \116 &= 1 razy 87 + 29 \87 &= 3 razy 29 + 0.\end{aligned}191489911687=2×899+116=7×116+87=1×87+29=3×29+0.

Z tego wynika, że ostatnia niezerowa reszta (GCD) to 292929.Teraz korzystamy z rozszerzonego algorytmu:

29=116+(-1)×8787=899+(-7)×116.\begin{aligned} 29 &= 116 + (-1)\times 87 &= 899 + (-7)\times 116.\end{aligned}2987=116+(-1)×87=899+(-7)×116.

Podstawiając 878787 w pierwszym równaniu, mamy

29=116+(-1)×(899+(-7)×116)=(-1)×899+8×116=(-1)×899+8×(1914+(-2)×899)=8×1914+(-17)×899=8×1914-17×899.\begin 29&= 116 + (-1)razy (899 + (-7)razy 116) = (-1)\times 899 + 8\times 116 = (-1)\times 899 + 8\times ( 1914 + (-2)\times 899 ) = 8\times 1914 + (-17) \times 899 = 8\times 1914 – 17 \times 899.\end{aligned}29=116+(−1)×(899+(−7)×116)=(−1)×899+8×116=(−1)×899+8×(1914+(−2)×899)=8×1914+(−17)×899=8×1914−17×899.

Ponieważ teraz zapisaliśmy GCD jako kombinację liniową dwóch liczb całkowitych, kończymy algorytm i stwierdzamy

a=8,b=-17. □ a = 8, b =-17.

a=8,b=-17. □

Leave a Reply