www.wikidata.de-de.nina.az
Der erweiterte euklidische Algorithmus ist ein Algorithmus aus dem mathematischen Teilgebiet der Zahlentheorie Er berechnet neben dem grossten gemeinsamen Teiler ggT a b displaystyle operatorname ggT a b zweier naturlicher Zahlen a displaystyle a und b displaystyle b noch zwei ganze Zahlen s displaystyle s und t displaystyle t die die folgende Gleichung erfullen ggT a b s a t b displaystyle operatorname ggT a b s cdot a t cdot b Der Algorithmus ist eine Erweiterung des bereits in der Antike bekannten euklidischen Algorithmus der nur den grossten gemeinsamen Teiler berechnet Das Haupteinsatzgebiet des erweiterten euklidischen Algorithmus ist die Berechnung der inversen Elemente in ganzzahligen Restklassenringen denn wenn der Algorithmus das Tripel d ggT a b s t displaystyle d operatorname ggT a b s t ermittelt ist entweder d 1 displaystyle d 1 und damit 1 t b mod a displaystyle 1 equiv t cdot b pmod a t displaystyle t also das multiplikative Inverse von b displaystyle b modulo a displaystyle a oder aber d 1 displaystyle d neq 1 was bedeutet dass b displaystyle b modulo a displaystyle a kein Inverses hat Dies ist die Grundlage fur die Losung von diophantischen Gleichungen oder allgemeiner von ganzzahligen linearen Gleichungssystemen Ebenso ist die Bestimmung inverser Elemente eine Grundlage fur den chinesischen Restsatz welcher wiederum Grundlage des bedeutenden Tricks der kleinen Primzahlen in der berechenbaren Algebra ist Dabei wird eine Aufgabe in mehreren endlichen Korpern gelost und diese Teillosungen in immer grossere Restklassenringe gehoben bis sich eine ganzzahlige Losung ablesen lasst Der Algorithmus liefert zudem einen konstruktiven Beweis fur das Lemma von Bezout also 1 s a t b displaystyle 1 s cdot a t cdot b Die am weitesten bekannte Version des euklidischen Algorithmus bezieht sich auf den Bereich der ganzen Zahlen Jedoch kann er auf jeden Ring angewandt werden in welchem eine Division mit kleinstem Rest durchgefuhrt werden kann Solche Ringe werden euklidisch genannt ein Beispiel ist der Polynomring in einer Variablen mit rationalen oder reellen Koeffizienten In diesem kann immer ein eindeutig bestimmter Rest mit kleinstem Grad gefunden werden Inhaltsverzeichnis 1 Funktionsweise der iterativen Variante 2 Beispiel fur die rekursive Variante 3 Tabellarische Darstellung 3 1 Rekursive Variante 3 2 Iterative Variante 4 Allgemeine mathematische Grundlage 5 Algorithmus 5 1 Rekursive Variante 5 2 Programmierung 6 Hinweise zur effizienten Computerimplementierung 6 1 Darstellung mittels Matrizen 7 Siehe auch 8 Weblinks 9 EinzelnachweiseFunktionsweise der iterativen Variante BearbeitenDie iterative Variante des EEA berechnet aus den vorgegebenen a b displaystyle a b nbsp drei Zahlenfolgen r i s i t i displaystyle r i s i t i nbsp Diese werden zunachst initialisiert r 0 a r 1 b displaystyle r 0 a r 1 b nbsp s 0 1 s 1 0 displaystyle s 0 1 s 1 0 nbsp t 0 0 t 1 1 displaystyle t 0 0 t 1 1 nbsp Dann wird fur i 1 2 displaystyle i 1 2 ldots nbsp berechnet r i 1 r i 1 q i r i displaystyle r i 1 r i 1 q i cdot r i nbsp s i 1 s i 1 q i s i displaystyle s i 1 s i 1 q i cdot s i nbsp t i 1 t i 1 q i t i displaystyle t i 1 t i 1 q i cdot t i nbsp Dabei ist q i displaystyle q i nbsp der Quotient und r i 1 displaystyle r i 1 nbsp der Rest der Division r i 1 r i displaystyle r i 1 r i nbsp Die Berechnung endet sobald r i 1 0 displaystyle r i 1 0 nbsp auftritt Dann ist r i displaystyle r i nbsp der ggT und es gilt r i a s i b t i displaystyle r i a cdot s i b cdot t i nbsp Beispiel fur die rekursive Variante BearbeitenZu der Vorgabe der Zahlen 99 und 78 produziert der einfache euklidische Algorithmus die Folge von Divisionen mit Rest 99 1 78 21 78 3 21 15 21 1 15 6 15 2 6 3 6 2 3 0 displaystyle begin matrix underline 99 amp amp 1 cdot underline 78 underline 21 underline 78 amp amp 3 cdot underline 21 underline 15 underline 21 amp amp 1 cdot underline 15 underline 6 underline 15 amp amp 2 cdot underline 6 underline 3 underline 6 amp amp 2 cdot underline 3 underline 0 end matrix nbsp 3 ist ein Teiler von 6 und damit der gesuchte grosste gemeinsame Teiler von 99 und 78 Nun kann man diese Gleichungen ruckwarts lesen und den Rest jeweils als Differenz der beiden anderen Terme darstellen Setzt man diese Restdarstellungen rekursiv ineinander ein so ergeben sich verschiedene Darstellungen des letzten Restes 3 3 15 2 6 15 2 21 1 15 3 15 2 21 3 78 3 21 2 21 3 78 11 21 3 78 11 99 1 78 14 78 11 99 displaystyle begin array rclcl underline 3 amp amp underline 15 2 cdot underline 6 amp amp underline 15 2 cdot underline 21 1 cdot underline 15 amp amp 3 cdot underline 15 2 cdot underline 21 amp amp 3 cdot underline 78 3 cdot underline 21 2 cdot underline 21 amp amp 3 cdot underline 78 11 cdot underline 21 amp amp 3 cdot underline 78 11 cdot underline 99 1 cdot underline 78 amp amp 14 cdot underline 78 11 cdot underline 99 end array nbsp Der grosste gemeinsame Teiler ist so als ganzzahlige Linearkombination der beiden Ausgangszahlen 78 und 99 dargestellt In der eben dargestellten Berechnungsvorschrift muss man erst den letzten Schritt des einfachen euklidischen Algorithmus abwarten bevor die Berechnung der gesuchten Koeffizienten beginnen kann Man kann aber auch ebenso alle anderen Reste als ganzzahlige Linearkombination von 78 und 99 darstellen und die zugehorigen Koeffizienten in jedem Schritt des einfachen euklidischen Algorithmus mit bestimmen 99 1 78 21 21 1 99 1 78 78 3 21 15 15 1 78 3 21 3 99 4 78 21 1 15 6 6 1 21 1 15 4 99 5 78 15 2 6 3 3 1 15 2 6 11 99 14 78 displaystyle begin array rclcrclcl underline 99 amp amp 1 cdot underline 78 underline 21 amp iff amp underline 21 amp amp amp amp 1 cdot underline 99 1 cdot underline 78 underline 78 amp amp 3 cdot underline 21 underline 15 amp iff amp underline 15 amp amp 1 cdot underline 78 3 cdot underline 21 amp amp 3 cdot underline 99 4 cdot underline 78 underline 21 amp amp 1 cdot underline 15 underline 6 amp iff amp underline 6 amp amp 1 cdot underline 21 1 cdot underline 15 amp amp 4 cdot underline 99 5 cdot underline 78 underline 15 amp amp 2 cdot underline 6 underline 3 amp iff amp underline 3 amp amp 1 cdot underline 15 2 cdot underline 6 amp amp 11 cdot underline 99 14 cdot underline 78 end array nbsp Tabellarische Darstellung BearbeitenRekursive Variante Bearbeiten Die Zwischenergebnisse beider Berechnungsmoglichkeiten lassen sich ubersichtlich in Tabellen darstellen Fur die erste Variante bei der die Folge der Divisionen mit Rest ruckwarts aufgearbeitet wird kann dies die folgende Gestalt annehmen a b q s t99 78 178 21 321 15 115 6 26 3 23 0 a b q s t99 78 178 21 321 15 115 6 26 3 23 0 1 0 a b q s t99 78 1 11 1478 21 3 3 1121 15 1 2 315 6 2 1 26 3 2 0 13 0 1 0Dabei wird zuerst wie in der linken Tabelle der einfache euklidische Algorithmus ausgefuhrt Die Division mit Rest hat dabei immer die Form a q b r displaystyle a q cdot b r nbsp anders gesagt bei q displaystyle q nbsp handelt es sich um das Ergebnis der Ganzzahldivision von a displaystyle a nbsp durch b displaystyle b nbsp mit Rest r displaystyle r nbsp wobei q displaystyle q nbsp und r displaystyle r nbsp bestimmt werden q displaystyle q nbsp wird in der Zeile vermerkt das Paar b r displaystyle b r nbsp wird an die Stelle des Paars a b displaystyle a b nbsp in der nachsten Zeile eingetragen Dieser Schritt wird solange wiederholt bis in der Spalte von b displaystyle b nbsp eine Null steht Bis zu diesem Punkt wurde der einfache euklidische Algorithmus ausgefuhrt und in der linken unteren Ecke Spalte a displaystyle a nbsp kann der grosste gemeinsame Teiler abgelesen werden In unserem Fall die Drei Nun beginnt die Berechnung der ganzzahligen Koeffizienten s displaystyle s nbsp und t displaystyle t nbsp In jeder Zeile soll dabei 3 s a t b displaystyle 3 s cdot a t cdot b nbsp gelten Dementsprechend wird in der letzten Zeile s 1 displaystyle s 1 nbsp eingetragen denn 3 1 3 displaystyle 3 cdot 1 3 nbsp Da in der letzten Zeile der Spalte b 0 displaystyle b 0 nbsp steht kann fur t displaystyle t nbsp ein beliebiger Wert genommen werden denn 0 t 0 displaystyle 0 cdot t 0 nbsp Hier im Beispiel ist t 0 displaystyle t 0 nbsp gesetzt es ergibt sich die mittlere Tabelle Nun arbeitet man sich von unten nach oben Fur das s displaystyle s nbsp nimmt man das t displaystyle t nbsp der darunterliegenden Zeile Das t displaystyle t nbsp berechnet sich aus dem q displaystyle q nbsp der jeweiligen Zeile und dem s displaystyle s nbsp und t displaystyle t nbsp der darunterliegenden Zeile s t a l t displaystyle s t mathsf alt nbsp bzw t s a l t q t a l t displaystyle t s mathsf alt q cdot t mathsf alt nbsp Fur die vorletzte Zeile ergibt sich so s 0 displaystyle s 0 nbsp und t 1 2 0 1 displaystyle t 1 2 cdot 0 1 nbsp daruber dann s 1 displaystyle s 1 nbsp und t 0 2 1 2 displaystyle t 0 2 cdot 1 2 nbsp usw Diesen Schritt wiederholen wir solange bis die Tabelle ausgefullt ist Es ergibt sich die rechte Tabelle Die Eintrage fur s displaystyle s nbsp und t displaystyle t nbsp in der ersten Zeile sind die gesuchten Werte Der grosste gemeinsame Teiler findet sich wie schon erwahnt in der unteren linken Ecke Fur das Beispiel gilt damit 3 11 99 14 78 displaystyle 3 11 cdot 99 14 cdot 78 nbsp Iterative Variante Bearbeiten Gegeben sind wieder die Werte 99 und 78 Wie sich aus dem Beispiel ablesen lasst hangt der aktuelle Rechenschritt von den Zwischenergebnissen der zwei vorhergehenden Rechenschritte ab Dem kann Rechnung getragen werden indem bei der Initialisierung eine Hilfszeile vorangestellt wird Weiter werden der Ubersicht halber Hilfsvariablen u displaystyle u nbsp und v displaystyle v nbsp mit einer eigenen Spalte eingefugt a b q u s v t0 99 0 0 1 1 099 78 1 1 0 0 178 21 3 0 1 1 121 15 1 1 3 1 415 6 2 3 4 4 56 3 2 4 11 5 143 0 11 26 14 33Um die jeweils nachste Zeile zu bestimmen werden folgende Operationen ausgefuhrt Es wird die Division mit Rest ausgefuhrt a q b r displaystyle a q cdot b r nbsp und a n e u b displaystyle a rm neu b nbsp sowie b n e u r displaystyle b rm neu r nbsp gesetzt Die neuen Werte der Hilfsvariablen werden aus der aktuellen Zeile ubernommen u n e u s displaystyle u rm neu s nbsp und v n e u t displaystyle v rm neu t nbsp Die neuen Koeffizienten ergeben sich durch s n e u u q s displaystyle s rm neu u q cdot s nbsp und t n e u v q t displaystyle t rm neu v q cdot t nbsp Durch diese Vorschrift gelten in jeder ausser der ersten Zeile die Beziehungen a u a o r i g v b o r i g displaystyle a u cdot a rm orig v cdot b rm orig nbsp und b s a o r i g t b o r i g displaystyle b s cdot a rm orig t cdot b rm orig nbsp hier mit den Ausgangswerten a o r i g 99 displaystyle a rm orig 99 nbsp und b o r i g 78 displaystyle b rm orig 78 nbsp Aus den letzten zwei Zeilen liest man daher ab dass 3 der grosste gemeinsame Teiler ist und 3 11 99 14 78 displaystyle 3 11 cdot 99 14 cdot 78 nbsp gilt Ist man mit dieser Methode vertraut genug so kann man in der Tabelle die Spalten a u displaystyle a u nbsp und v displaystyle v nbsp weglassen da diese nur bereits weiter oben stehende Eintrage wiederholen Weitere Beispiele in dieser verknappten Form sind in den folgenden Tabellen dargestellt k b q s t 1 aorig 122 1 00 borig 22 5 0 11 12 1 1 52 10 1 1 63 2 ggT 5 2 s 11 t4 0 k b q s t 1 aorig 120 1 00 borig 23 5 0 11 5 4 1 52 3 1 4 213 2 1 5 264 1 ggT 2 9 s 47 tAllgemeine mathematische Grundlage BearbeitenDer euklidische Algorithmus erzeugt zu vorgegebenen ganzen Zahlen a und b allgemein Elementen eines euklidischen Rings zwei Folgen eine Folge q k k displaystyle q k k nbsp von Quotienten und eine Folge r k k displaystyle r k k nbsp von Resten wobei r 0 a r 1 b displaystyle r 0 a r 1 b nbsp In jedem Schritt k 1 2 displaystyle k 1 2 ldots nbsp gilt dabei r k 1 q k r k r k 1 displaystyle r k 1 q k cdot r k r k 1 nbsp r k 1 lt r k displaystyle r k 1 lt r k nbsp Nach endlich vielen Schritten ergibt sich der Rest Null Wir gehen nun zu Restklassen modulo b uber Es ist trivial zu sehen dass r 0 a 1 a displaystyle r 0 a 1 cdot a nbsp und r 1 b 0 a 1 b displaystyle r 1 b 0 cdot a 1 cdot b nbsp Vielfache von a displaystyle a nbsp nach Hinzufugen oder Abziehen von Vielfachen von b displaystyle b nbsp sind Genauer sind die Restklassen r k b displaystyle r k b nbsp Vielfache der Restklasse a b displaystyle a b nbsp fur k 0 1 displaystyle k 0 1 nbsp und nach Rekursionsvorschrift auch fur k 2 3 displaystyle k 2 3 ldots nbsp Es kann also eine Folge von Multiplikatoren s k k displaystyle s k k nbsp konstruiert werden die mit s 0 1 displaystyle s 0 1 nbsp und s 1 0 displaystyle s 1 0 nbsp initialisiert ist so dass r k s k a mod b displaystyle r k equiv s k cdot a pmod b nbsp gilt Es ergibt sich die rekursive Beziehung s k 1 q k s k s k 1 displaystyle s k 1 equiv q k cdot s k s k 1 nbsp Man kann diese Rekursion in folgende Abfolge von Schritten fur den erweiterten euklidischen Algorithmus fassen Erhalte a displaystyle a nbsp und b displaystyle b nbsp als Eingabe Setze k 0 displaystyle k 0 nbsp r 0 a r 1 b displaystyle r 0 a r 1 b nbsp s 0 1 displaystyle s 0 1 nbsp und s 1 0 displaystyle s 1 0 nbsp Wiederhole Erhohe k displaystyle k nbsp um eins Bestimme den ganzzahligen Quotienten q k r k 1 r k displaystyle q k r k 1 div r k nbsp Setze r k 1 r k 1 q k r k displaystyle r k 1 r k 1 q k cdot r k nbsp und s k 1 s k 1 q k s k displaystyle s k 1 s k 1 q k cdot s k nbsp bis r k 1 0 displaystyle r k 1 0 nbsp gilt Gib den Rest r k ggT a b displaystyle r k operatorname ggT a b nbsp und die Zahl s k displaystyle s k nbsp mit ggT a b s k a mod b displaystyle operatorname ggT a b equiv s k cdot a pmod b nbsp zuruck Jeder Schritt enthalt implizit auch einen Multiplikator t k r k s k a b displaystyle t k r k s k cdot a div b nbsp wobei diese Division keinen Rest lasst Die Folge t k k displaystyle t k k nbsp kann auch explizit bestimmt werden es gelten t 0 0 displaystyle t 0 0 nbsp t 1 1 displaystyle t 1 1 nbsp und t k 1 q k t k t k 1 displaystyle t k 1 equiv q k cdot t k t k 1 nbsp Nach dem letzten Schritt ergibt sich nun ggT a b s k a t k b displaystyle operatorname ggT a b s k cdot a t k cdot b nbsp Der Ubersicht halber werden beim handischen Rechnen auch noch die Hilfsfolgen a k r k 1 k displaystyle a k r k 1 k nbsp und b k r k k displaystyle b k r k k nbsp sowie u k s k 1 k displaystyle u k s k 1 k nbsp sowie v k t k 1 k displaystyle v k t k 1 k nbsp mitgefuhrt Algorithmus BearbeitenRekursive Variante Bearbeiten Fur den erweiterten euklidischen Algorithmus existiert auch eine rekursive Variante die durch den folgenden Pseudocode gegeben ist 1 a b zwei Zahlen fur die der erweiterte euklidische Algorithmus durchgefuhrt wirdextended euclid a b 1 wenn b 0 2 dann return a 1 0 3 d s t displaystyle leftarrow nbsp extended euclid b a mod b 4 d s t displaystyle leftarrow nbsp d t s a div b t 5 return d s t Gleichbedeutend ist folgende mathematische Funktionsdefinition mit Fallunterscheidung e x t e n d e d e u c l i d a b a 1 0 wenn b 0 d t s t a div b mit d s t e x t e n d e d e u c l i d b a mod b displaystyle operatorname extended euclid a b begin cases a 1 0 amp text wenn b 0 d t s t a text div b amp text mit d s t operatorname extended euclid b a text mod b end cases nbsp Programmierung BearbeitenDas folgende Programm in der Programmiersprache C zeigt die Implementierung der rekursiven Variante und der iterativen Variante Die zwei Varianten werden jeweils in einer Funktion mit den Parametern a und b sowie s und t implementiert Die Parameter s und t sind Zeiger auf die berechneten Zahlen Bei der Ausfuhrung des Programms wird die Hauptfunktion main verwendet die die Eingabe der beiden Zahlen uber die Konsole ermoglicht und dann das Ergebnis der beiden Varianten dort ausgibt include lt iostream gt using namespace std int gcdExtendedRecursive int a int b int s int t if b 0 s 1 t 0 return a int s1 t1 Deklaration der Variablen die die Ergebnisse des rekursiven Aufrufs speichern int d gcdExtendedRecursive b a b amp s1 amp t1 Rekursiver Aufruf der Methode s t1 t s1 a b t1 return d int gcdExtendedIterative int a int b int s int t s 1 Initialisierung der Zeiger t 0 int u 0 Deklaration der lokalen Variablen int v 1 while b 0 int q a b int b1 b Variable zum Zwischenspeichern b a q b a b1 int u1 u Variable zum Zwischenspeichern u s q u s u1 int v1 v Variable zum Zwischenspeichern v t q v t v1 return a Hauptfunktion die das Programm ausfuhrt int main int a b s t Deklaration der lokalen Variablen cout lt lt Erste Zahl Ausgabe auf der Konsole cin gt gt a Eingabe uber die Konsole cout lt lt Zweite Zahl Ausgabe auf der Konsole cin gt gt b Eingabe uber die Konsole int d gcdExtendedRecursive a b amp s amp t Aufruf der rekursiven Funktion cout lt lt Groesster gemeinsamer Teiler lt lt s lt lt lt lt a lt lt lt lt t lt lt lt lt b lt lt lt lt d lt lt endl Ausgabe auf der Konsole d gcdExtendedIterative a b amp s amp t Aufruf der iterativen Funktion cout lt lt Groesster gemeinsamer Teiler lt lt s lt lt lt lt a lt lt lt lt t lt lt lt lt b lt lt lt lt d lt lt endl Ausgabe auf der Konsole Hinweise zur effizienten Computerimplementierung Bearbeiten nbsp Darstellung der Anzahl der Schleifendurchlaufe fur zwei Zahlen m displaystyle m nbsp und n displaystyle n nbsp fur die die einfache Implementierung des erweiterten euklidischen Algorithmus verwendet wurde Darstellung mittels Matrizen Bearbeiten Versieht man die Variablen des euklidischen Algorithmus mit Indizes fur den Iterationsschritt so wird im Schritt k displaystyle k nbsp die Division mit Rest m k n k q k r k displaystyle m k n k cdot q k r k nbsp ausgefuhrt Im Ubergang zum nachsten Schritt wird m k 1 n k displaystyle m k 1 n k nbsp und n k 1 r k m k q k n k displaystyle n k 1 r k m k q k cdot n k nbsp gesetzt Bildet man aus m displaystyle m nbsp und n displaystyle n nbsp einen Spaltenvektor so hat der gesamte Schritt eine Darstellung mit Ubergangsmatrix m k 1 n k 1 0 1 1 q k m k n k displaystyle begin pmatrix m k 1 n k 1 end pmatrix begin pmatrix 0 amp 1 1 amp q k end pmatrix cdot begin pmatrix m k n k end pmatrix nbsp Terminiert der Algorithmus nach L displaystyle L nbsp Schritten so gilt n L 1 r L 0 displaystyle n L 1 r L 0 nbsp und daher m L 1 n L ggT a b displaystyle m L 1 n L operatorname ggT a b nbsp Setzt man die Bildungsvorschriften der Spaltenvektoren ineinander ein so ergibt sich die Verbindung zwischen dem ersten und dem letzten Spaltenvektor durch ein Matrizenprodukt ggT a b 0 0 1 1 q L 0 1 1 q 1 a b displaystyle begin pmatrix operatorname ggT a b 0 end pmatrix begin pmatrix 0 amp 1 1 amp q L end pmatrix cdot ldots cdot begin pmatrix 0 amp 1 1 amp q 1 end pmatrix cdot begin pmatrix a b end pmatrix nbsp Durch Multiplikation mit dem Zeilenvektor 1 0 displaystyle 1 0 nbsp wird die erste Zeile auf beiden Seiten extrahiert somit gilt ggT a b 1 0 0 1 1 q L 0 1 1 q 1 a b displaystyle operatorname ggT a b begin pmatrix 1 amp 0 end pmatrix cdot begin pmatrix 0 amp 1 1 amp q L end pmatrix cdot ldots cdot begin pmatrix 0 amp 1 1 amp q 1 end pmatrix cdot begin pmatrix a b end pmatrix nbsp Die verschiedenen Arten das Matrixprodukt der letzten Identitat auszurechnen ergeben die verschiedenen Varianten des erweiterten euklidischen Algorithmus In der klassischen Variante in welcher die Divisionen mit Rest von der letzten beginnend ausgewertet werden entspricht der Bildung der Matrixprodukte beginnend von links Diese entspricht dem nachfolgenden rekursiven Algorithmus Es wird s 1 t 1 1 0 displaystyle s 1 t 1 1 0 nbsp gesetzt und rekursiv s k 1 t k 1 s k t k 0 1 1 q L 1 k displaystyle s k 1 t k 1 s k t k begin pmatrix 0 amp 1 1 amp q L 1 k end pmatrix nbsp fur k 1 L displaystyle k 1 ldots L nbsp bestimmt Am Ende gilt ggT a b s L 1 a t L 1 b displaystyle operatorname ggT a b s L 1 a t L 1 b nbsp Es mussen aber zuerst alle Quotienten bestimmt werden bevor der erste Rekursionsschritt ausgefuhrt werden kann Beginnt man die Produktbildung von rechts so wird der Quotient der Division mit Rest in dem Augenblick benutzt in dem er bestimmt wurde und kann danach vergessen werden Dies entspricht dem am Anfang angegebenen Algorithmus in welchem am Anfang s 1 t 1 u 1 v 1 I 2 1 0 0 1 displaystyle begin pmatrix s 1 amp t 1 u 1 amp v 1 end pmatrix I 2 begin pmatrix 1 amp 0 0 amp 1 end pmatrix nbsp festgesetzt und s k 1 t k 1 u k 1 v k 1 0 1 1 q k s k t k u k v k displaystyle begin pmatrix s k 1 amp t k 1 u k 1 amp v k 1 end pmatrix begin pmatrix 0 amp 1 1 amp q k end pmatrix cdot begin pmatrix s k amp t k u k amp v k end pmatrix nbsp fur k 1 L displaystyle k 1 ldots L nbsp iteriert wird Insgesamt ergibt sich damit s L 1 t L 1 u L 1 v L 1 0 1 1 q L 0 1 1 q 1 displaystyle begin pmatrix s L 1 amp t L 1 u L 1 amp v L 1 end pmatrix begin pmatrix 0 amp 1 1 amp q L end pmatrix cdot ldots cdot begin pmatrix 0 amp 1 1 amp q 1 end pmatrix nbsp Am Ende gilt ggT a b s L 1 a t L 1 b displaystyle operatorname ggT a b s L 1 a t L 1 b nbsp wobei wegen der Beziehungen s L 1 u L displaystyle s L 1 u L nbsp und t L 1 v L displaystyle t L 1 v L nbsp der letzte Iterationsschritt auch weggelassen werden kann Siehe auch BearbeitenEuklidischer Algorithmus Steinscher AlgorithmusWeblinks BearbeitenUniversitat Ulm Elementare Zahlentheorie 1 Iterative Variante in Java Quellcode JavaScript Rechner mit Berechnungsdetails und Zwischenschritten Alternative Darstellung der Berechnung Video Erweiterter Euklidischer Algorithmus Teil 1 Padagogische Hochschule Heidelberg PHHD 2012 zur Verfugung gestellt von der Technischen Informationsbibliothek TIB doi 10 5446 19885 Video Erweiterter Euklidischer Algorithmus Teil 2 Padagogische Hochschule Heidelberg PHHD 2012 zur Verfugung gestellt von der Technischen Informationsbibliothek TIB doi 10 5446 19886 Video Erweiterter Euklidischer Algorithmus Teil 3 Padagogische Hochschule Heidelberg PHHD 2012 zur Verfugung gestellt von der Technischen Informationsbibliothek TIB doi 10 5446 19887 Hochschule Flensburg Erweiterter euklidischer Algorithmus GeeksforGeeks Euclidean algorithms Basic and Extended Einzelnachweise Bearbeiten Thomas H Cormen Charles E Leiserson Ronald L Rivest Clifford Stein Introduction to Algorithms 2 Auflage MIT Press Cambridge MA 2001 ISBN 0 262 03293 7 Abgerufen von https de wikipedia org w index php title Erweiterter euklidischer Algorithmus amp oldid 239446861