SS 2012 Diskrete Mathematik Vorlesung 6 Der Euklidische Algorithmus Gröÿter gemeinsamer Teiler Denition 1 (Teiler) n m 2 Z ist. Ist m Eine Zahl Teiler von Denition 2 (ggT) n, 2N m ist Teiler von schreibt man m j n, n 2 Z, andernfalls wenn der Quotient m - n. Gröÿter gemeinsamer Teiler (ggT) zweier Zahlen diejenige gröÿte Zahl, die zugleich Teiler von m und n m; n 2 Z ist ist. Diese Zahl ist eindeutig bestimmt und wird mit ggT(m; n) bezeichnet. Bemerkung 1 Für Teiler von 0 und Bemerkung 2 n n > 0 ist ggT(0; n) = nicht gröÿer als n, denn n teilt 0 und n, andrerseits können sein. n ggT(0; 0) ist nicht deniert, denn die Menge der Teiler von 0 ist unbeschränkt und hat kein Maximum. Primzahlen Denition 3 (teilerfremd) Zwei Zahlen m; n 2 Z heiÿen teilerfremd, wenn ggT( m; n) 1 ist. Denition 4 (prim) Eine Zahl einzigen Teiler von sind. Bemerkung 3 Ist p p prim, so ist p > p 1 heiÿt prim (Primzahl), wenn 1 und p teilerfremd zu allen positiven Zahlen kleiner Satz 1 (Fundamentalsatz der Arithmetik) Primzahlen n = Jede Zahl n die p. 2 N kann als Produkt von 1 pm p dargestellt werden und unter der Bedingung 1 : : : pm : p ist diese Darstellung eindeutig. oor, modulo Denition 5 (oor) x) Für die gröÿte Zahl aus x Z, 2 R bezeichnet b c (oor x die kleiner oder gleich x x, ganzzahliger Anteil von ist. Eine Zahl x mit Rest durch eine Zahl y dividieren heiÿt: Ermitteln, welches ganzzahlige Vielfache von y in x enthalten ist. Den verbleibenden Rest nennt man x mod y : = SS 2012 Diskrete Mathematik Denition 6 (modulo) Für x; y x Im Fall mod b = 0 legt man fest: y 2 Z ist x=y y = x y c = 0. Beispiel 1 3=5 3= c : 3 = ; = 5 mod 3 = 5 mod x=y b 5 3c = 2 ( 3) b5 ( 3)c = 1 5 3 b 5 3c = 1 ( 3) b 5 ( 3)c = 5 mod 3 = 5 5 mod b Vorlesung 6 = 5 ; ; = 2: Klassischer euklidischer Algorithmus Den gröÿten gemeinsamen Teiler ggT(m; n) zweier Zahlen m; n 2 Z mit 0 m < n kann man nach Euklid rekursiv berechnen durch ggT(0; n) = n ggT(m; n) = ggT(n mod (1) m; m); m > 0: (2) (1) und (2) beschreiben zusammen einen Rekursionsalgorithmus. (2) stellt gleichzeitig eine Behauptung dar. 1. Die Rekursion muss nach endlich vielen Schritten enden, nämlich dann, wenn sich für n mod m Null ergibt. 2. Die Behauptung, die in (2) steckt, ist wahr, da jeder gemeinsame Teiler von m und n auch gemeinsamer Teiler von n mod m = n Beispiel 2 m b n=m c und m ist und umgekehrt. ggT(54; 87) = ggT(33; 54) = ggT(21; 33) = ggT(12; 21) = ggT(9; 12) = ggT(3; 9) = ggT(0; 3) = 3. Erweiterter euklidischer Algorithmus 1 0 Der ggT(x ; x ) (0 x 1 < x0 ) wird berechnet durch die Rekursion xi +1 = xi 1 xi b xi +1 = 0 und ggT(x1 ; x0") = xn 6= # 0 endet. 1 =xi c ; (3) die mit xn Mit qi = b xi 1 =xi c und Qi = " # xi xi " Aus # xn xn +1 +1 " = " = #" a b 0 x1 x Qi xi 0 1 1 1 qi # xi gilt " und # " # 0 = Qn Qn 1 Q1 {z } x1 | xn+1 =: a b xn x # : folgt die Darstellung ggT(x1 ; x0 ) = xn = ax 0 + bx1 (a; b 2 Z) : (4) 2 SS 2012 Beispiel 3 Diskrete Mathematik Vorlesung 6 Mit den Zahlen von Beispiel 2 gilt " 6 x7 # x " = " = = und damit 0 1 1 3 5 18 " # 3 #" 0 1 #5 " 1 1 #" # 8 87 29 87 # 54 54 0 ggT(54; 87) = 5 87 + ( 8) 54 = 3 : Aus dieser Beziehung kann man z.B. ablesen, dass ( 8) 54 mod 87 = 79 54 mod 87 = 3 ist. Ezienz des euklidischen Algorithmus Benachbarte Fibonacci-Zahlen sind teilerfremd. Dies sieht man, wenn man die rekursive Berechnung der Fibonacci-Zahl Fn +1 aufrollt und die entstehenden Gleichungen als euklidische Divi- sionen interpretiert: F =1 n=1 n+1 F n + Fn 1 = b Fnn+1 c Fn + Fn+1 mod Fn Fn Fn 1 + Fn 2 = b Fn 1 c Fn 1 + Fn mod Fn 1 F F . . . 2 = 1 F1 + F0 = b FF21 c F1 + F2 mod F1 F +1 ; Fn sind die kleinsten Eingabe- Diese Gleichungen zeigen noch etwas: Die Fibonacci-Zahlen Fn daten des euklidischen Algorithmus, die zu n Divisionen mit Rest führen. Benachbarte FibonacciZahlen sind also der ungünstigste Fall für den euklidischen Algorithmus, d.h. sind zur Berechnung des ggT zweier beliebiger Zahlen x 1 < x0 mindestens n Schritte erforderlich, so ist x 0 Fn+1 . Es lässt sich daraus herleiten, dass die Anzahl benötigter Divisionen mit Rest beim euklidischen Algorithmus höchstens linear mit der Stellenzahl der Eingabedaten wächst. 3