Erweiterter euklidischer Algorithmus

Dieser Rechner verwendet den erweiterten euklidischen Algorithmus, der neben den größten gemeinsamen Teiler von den Ganzzahlen a und b auch den Lemma von Bezout Koeffizienten berechnet.

Diese Webseite exisiert dank der Arbeit von den folgenden Menschen:

Timur

Timur

Stefan Roesner

Erstellt: 2020-11-10 04:31:31, Letzte Aktualisierung: 2020-11-10 04:31:31

Auf dieser Seite haben wir bereits einen Rechner, Die größten gemeinsamen Teiler von Ganzzahlen, der den euklidischen Algorithmus verwendet. Wie es sich (für mich) rausgestellt hat, gibt es einen erweiterten euklidischen Algorithmus. Dieser Algorithmus berechnet neben dem größten gemeinsamen Teiler der Ganzzahlen a und b auch das Lemma von Bezout Koeffizienten, die die Ganzzahlen x und y sind von

ax + by = {\rm gcd} (a, b)

Er erlaubt also die Berechnung der Quotienten on a und b mit deren größten gemeinsamen Teiler.

Sie finden den Rechner hier, und wie üblich ist der theoretische Teil darunter

PLANETCALC, Erweiterter euklidischer Algorithmus

Erweiterter euklidischer Algorithmus

Größter gemeinsamer Teiler
 
Koeffizient von der größeren Ganzzahl
 
Koeffizient von der kleineren Ganzzahl
 

Der erweiterte Algorithmus nutzt die Rekursion und berechnet die Koeffizienten durch deren Backtracking. Die Formeln dieser Berechnung kann man durch die folgenden Überlegungen erhalten:

Nehmen wir mal an, wir kennen die Koeffizienten (x_1,y_1) für das Paar (b\%a,a), wie:

 (b \% a)x_1 + ay_1 = g,

und wir berechnen die Koeffizienten für das Paar (a,b), wie:

 ax + by = g

Zuerst ersetzen wir b\%a mit:

b\%a = b - \left\lfloor \frac{b}{a} \right\rfloor a, wobei

\left\lfloor \frac{b}{a} \right\rfloor - der Quotient von der ganzzahligen Division von b nach a,

und nutzen diese als Ersatz in der Gleichung:

g = (b \% a) x_1 + a  y_1 = \left( b -\left\lfloor \frac{b}{a} \right\rfloor a\right) x_1 + ay_1

Nach der Umgruppierung haben wir:

g = bx_1 + a \left( y_1 - \left\lfloor \frac{b}{a} \right\rfloor x_1\right)

In einem Vergleich mit der Anfangsgleichung kann man x und y so darstellen:

x = y_1 - \left\lfloor \frac{b}{a} \right\rfloor x_1
y = x_1

Der Anfang des rekursiven Backtracking ist das Ende des euklidischen Algorithmus, wenn a = 0 und GNT = b sind, dann ist das erste x und y 0 und 1 respektiv. Weitere Koeffizienten werden mit den obigen Formeln berechnet.

URL zum Clipboard kopiert
PLANETCALC, Erweiterter euklidischer Algorithmus

Kommentare