Skript. Diskrete Mathematik. Prof. Dr. C.P. Schnorr



Ähnliche Dokumente
Primzahlen und RSA-Verschlüsselung

3.3 Eigenwerte und Eigenräume, Diagonalisierung

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Einführung in die Algebra

Mathematik für Informatiker II. Beispiellösungen zur Probeklausur. Aufgabe 1. Aufgabe 2 (5+5 Punkte) Christoph Eisinger Sommersemester 2011

Übungen zum Ferienkurs Lineare Algebra WS 14/15

Modul Diskrete Mathematik WiSe 2011/12

Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr.

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

Fachschaft Mathematik und Informatik (FIM) LA I VORKURS. Herbstsemester gehalten von Harald Baum

Computeralgebra in der Lehre am Beispiel Kryptografie

Bsp: Die kleinsten Carmichael-Zahlen sind 561, 1105, 1729, Es gibt unendlich viele Carmichael-Zahlen (Beweis 1994).

Lenstras Algorithmus für Faktorisierung

Lineare Gleichungssysteme

11. Das RSA Verfahren und andere Verfahren

7 Rechnen mit Polynomen

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

8. Quadratische Reste. Reziprozitätsgesetz

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Zusatztutorium,

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

3.1. Die komplexen Zahlen

Probabilistische Primzahltests

Der Zwei-Quadrate-Satz von Fermat

Rekursionen. Georg Anegg 25. November Methoden und Techniken an Beispielen erklärt

Zeichen bei Zahlen entschlüsseln

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

2 Die Darstellung linearer Abbildungen durch Matrizen

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Das RSA-Verfahren. Armin Litzel. Proseminar Kryptographische Protokolle SS 2009

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Erinnerung/Zusammenfassung zu Abbildungsmatrizen

Frohe Weihnachten und ein gutes neues Jahr!

4 Vorlesung: Matrix und Determinante

7. Ringe und Körper. 7. Ringe und Körper 49

11. Primfaktorzerlegungen

Musterlösungen zur Linearen Algebra II Blatt 5

4. Woche Decodierung; Maximale, Perfekte und Optimale Codes. 4. Woche: Decodierung; Maximale, Perfekte und Optimale Codes 69/ 140

Nichtlineare Optimierung ohne Nebenbedingungen

Algebraische Kurven. Vorlesung 26. Die Schnittmultiplizität

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN

0, v 6 = , v 4 = span(v 1, v 5, v 6 ) = span(v 1, v 2, v 3, v 4, v 5, v 6 ) 4. span(v 1, v 2, v 4 ) = span(v 2, v 3, v 5, v 6 )

Kapitel 15. Lösung linearer Gleichungssysteme

7 Die Determinante einer Matrix

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

RSA Verfahren. Kapitel 7 p. 103

6.2 Perfekte Sicherheit

Matrizennorm. Definition 1. Sei A M r,s (R). Dann heißt A := sup die Matrixnorm. Wir wissen zunächst nicht, ob A eine reelle Zahl ist.

Einführung in die Vektor- und Matrizenrechnung. Matrizen

Rekursionen (Teschl/Teschl )

Anhang I zur Vorlesung Kryptologie: Elementare Zahlentheorie

Kapitel 4. Euklidische Ringe und die Jordansche Normalform. 4.1 Euklidische Ringe

1 Mathematische Grundlagen

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Lösungen zum 3. Aufgabenblatt

15 Optimales Kodieren

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Algebra. Patrik Hubschmid. 8. Oktober 2013

Lineare Gleichungssysteme

Primzahlzertifikat von Pratt

10. Kryptographie. Was ist Kryptographie?

7 Untergruppen, Faktorgruppen, Ideale, Restklassenringe

Lineare Gleichungssysteme I (Matrixgleichungen)

Analysis I für Studierende der Ingenieurwissenschaften

RSA-Verschlüsselung. Verfahren zur Erzeugung der beiden Schlüssel:

Diskrete Strukturen 5.9 Permutationsgruppen 168/558 c Ernst W. Mayr

Lineare Gleichungssysteme

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Die reellen Lösungen der kubischen Gleichung

Theoretische Grundlagen der Informatik WS 09/10

Codierungstheorie Rudolf Scharlau, SoSe

Was können Schüler anhand von Primzahltests über Mathematik lernen?

5. Übung zum G8-Vorkurs Mathematik (WiSe 2011/12)

Vorkurs: Mathematik für Informatiker Steven Köhler, Anja Moldenhauer, Marcel Morisse

Eigenwerte und Eigenvektoren von Matrizen

Informationsblatt Induktionsbeweis

10. Public-Key Kryptographie

Diskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen)

Bestimmung einer ersten

Public-Key-Algorithmen WS2015/2016

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Mengensysteme, Wahrscheinlichkeitsmaße

Kevin Caldwell. 18.April 2012

GF(2 2 ) Beispiel eines Erweiterungskörpers (1)

Numerische Verfahren und Grundlagen der Analysis

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x y = x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?


Absolute Stetigkeit von Maßen

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Einführung in die Informatik I

Kap. 8: Speziell gewählte Kurven

Mathematik 1. Lösungsvorschläge zum 2. Übungsblatt

Das Briefträgerproblem

Euklidischer Algorithmus, Restklassenring und seine Struktur, Chinesischer Restklassensatz

Beispiel Zusammengesetzte Zufallsvariablen

Technische Informatik - Eine Einführung

klar. Um die zweite Bedingung zu zeigen, betrachte u i U i mit u i = 0. Das mittlere -Zeichen liefert s

a n auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:

Transkript:

Skript Diskrete Mathematik Prof. Dr. C.P. Schnorr http://www.mi.informatik.uni-frankfurt.de Johann-Wolfgang-Goethe Universität Fachbereich Informatik und Mathematik Frankfurt am Main 2. März 2015

Einleitung Die Diskrete Mathematik behandelt diskrete, insbesondere endliche Objekte und ihre Strukturen im Hinblick auf Computeranwendungen. Wichtig sind Prozeduren, die nach endlich vielen Schritten ein Ergebnis liefern, also Algorithmen. Effiziente Algorithmen bilden die Basis von Computeranwendungen schwierige algorithmische Probleme diejenige von Kryptographie und Datensicherheit. Die Vorlesung Diskrete Mathematik entwickelt auf der Grundlage von Linearer Algebra und elementarer Stochastik wichtige Bereiche der Computerwissenschaft wie Lineare Codes, Publik Key Verschlüsselung (RSA), Boolesche Funktionen und Schaltkreise. Mathematische Strukturen werden stets begleitet von Computeranwendungen. Es wird das Verständnis einfacher gegenüber schwierigen algorithmischen Problemen entwickelt. Es werden Algorithmen am Beispiel analysiert und ihre Computerrealisierung behandelt. Es wird das Zusammenspiel algorithmischer, stochastischer und algebraischer Aspekte entwickelt. Einerseits wendet sich die Vorlesung an Studenten der Informatik vorzugsweise im vierten Semester. Andererseits bietet die Vorlesung für Mathematikstudenten einen Kurs in angewandter Algebra und gilt als praktische Mathematik im Sinne der Studienordnung zum Diplom in Mathematik. Allgemeine Literaturhinweise (siehe Anhang): N.L. Biggs: Discrete Mathematics (Oxford University Press 1985) D.E. Knuth: The Art of Computer Programming, Vol.2 Chapter 4 (Addison-Wesley 1981, second edition), Vol.1 Chapter 1 (Addison Wesley 1972) M. Aigner: Diskrete Mathematik, (Vieweg, 1996) J. von zur Gathen und J. Gerhard: Modern Computer Algebra, (Cambridge University Press 1999) T. Ihringer: Diskrete Mathematik, (B.G. Teubner 1994) G. Kersting: Vorlesungsskript Diskrete Mathematik, www.math.uni-frankfurt.de/ stoch/kersting/skripten.html C.P. Schnorr: Vorlesungsskript Diskrete Mathematik, www.mi.informatik.uni-frankfurt.de/index.html#publications Diese Ausarbeitung basiert auf den Vorlesungen Diskrete Mathematik der Sommersemester 1992, 1995, 2001, 2006, 2008, 2010. Von Marc Fischlin und Roger Fischlin 1995/96 erstmals in L A TEX2e gesetzt.

INHALTSVERZEICHNIS 3 Inhaltsverzeichnis 1 Euklidischer Algorithmus 1 2 Kettenbrüche und Kontinuanten 11 3 Chin. Restsatz, Ideale, Faktorringe 21 4 RSA und Struktur von ZN 33 4.1 Symmetrische Chiffrierschemata................. 33 4.2 Asymmetrische Chiffrierschemata................ 33 4.3 Pseudoprimzahlen und Carmichael-Zahlen.......... 38 4.4 Der Primzahltest von Miller-Rabin Test............ 40 5 Gitter 43 5.2 Gitterbasenreduktion....................... 45 5.3 Ganzahlige, lineare Ungleichungssysteme............ 50 6 Fehlererkennende Codes 57 6.1 Einleitung............................. 57 6.2 Prüfzeichenverfahren....................... 58 6.3 Lineare Codes........................... 61 6.4 Hamming-Codes......................... 66 6.5 Hamming-Schranke und t-perfekte Codes........... 67 7 Endl. Körper und irreduzible Polynome 69 7.1 Endliche Körper......................... 69 7.2 Zerfällungskörper......................... 72

4 INHALTSVERZEICHNIS 7.3 Normalbasen........................... 75 7.4 Optimale Aufteilung von Information.............. 76 7.5 Die irreduziblen Polynome in Z p [x]............... 79 8 Algebraische Codes 83 8.1 Zyklische Codes.......................... 83 8.2 Kodierung mittels Schieberegister................ 85 8.3 Die Teiler von x n 1 F q [x].................. 86 8.4 BCH-Codes (Bose, Chaudhuri, Hocquenghem)........ 87 9 Diffie-Hellman und elliptische Kurven 91 10 Boole sche Algebren und Funktionen 97 10.1 Boole sche Operationen..................... 97 10.2 Boole sche Algebren....................... 98 10.3 Boole scher Verband....................... 99 10.4 Der Ring der Boole schen Funktionen............. 99 10.5 Der Ring der Boole schen Polynome.............. 100 10.6 Normalformen und NP -Vollständigkeit............. 101 A Gruppen, Normalteiler, Ringe 107 A.1 Gruppen und Normalteiler.................... 107 A.2 Homomorphismen........................ 111 A.3 Ringe............................... 114 B Übungsaufgaben 117 B.1 Gruppen, Normalteiler, Homomorphismen und Ringe..... 117 B.2 Euklidischer Algorithmus.................... 119 B.3 Kettenbrüche und Kontinuanten................ 120 B.4 Chinesischer Restsatz, Ideale und Faktorringe......... 120 B.5 RSA-Chiffrierschema und die Struktur von ZN........ 122 B.6 Gitterreduktion und ganzzahlige Ungleichungssysteme.... 123 B.7 Fehlererkennende und fehlerkorrigierende Codes........ 125 B.8 Endliche Körper......................... 126

INHALTSVERZEICHNIS I B.9 Irreduzible Polynome....................... 127 B.10 Algebraische Codes........................ 127 B.11 Erzeugende Funktionen..................... 128 B.12 Boole sche Algebren und Funktionen, N P -Vollständigkeit.. 128 Algorithmenverzeichnis 130 Index 131 Literaturverzeichnis 137

1 Kapitel 1 Euklidischer Algorithmus Der Euklidische Algorithmus ist eines der ältesten Rechenverfahren. Er war schon Eudoxus (375 v.chr.) bekannt und ist im Band 7 der Elemente von Euklid (300 v.chr.) beschrieben. Dies ist die älteste überlieferte Beschreibung eines Algorithmus. Das Verfahren zum Multiplizieren natürlicher Zahlen benutzten zwar schon die Steuerbeamten im alten Agypten zur Flächenberechnung, eine Verfahrensbeschreibung hinterliessen sie aber nicht. Der Euklidische Algorithmus bestimmt den größten gemeinsamen Teiler natürlicher Zahlen. Er kommt in vielen Rechenprozessen zur Anwendung, z.b. bei der Zerlegung von Zahlen und Polynomen und der Lösung ganzzahliger linearer Gleichungen. Wichtigste Varianten sind die Algorithmen 1 und 4. Algorithmus 3 bereitet den Algorithmus 4 vor. Größter gemeinsamer Teiler. Wir betrachten zunächst den Ring Z der ganzen Zahlen. Wir schreiben a b für ganze Zahlen a, b, falls a Teiler von b ist, d.h., falls es ein ganze Zahl c gibt mit ac = b. Def inition 1.1 d Z heißt größter gemeinsamer Teiler, kurz ggt, von a 1,..., a n Z \ {0}, falls a) d a 1,..., d a n, b) z a 1,..., z a n z d für alle z Z. Wir schreiben dann d = ggt(a 1,..., a n ). Gilt ggt(a 1,..., a n ) = 1, so sagt man, a 1,..., a n sind relativ prim oder teilerfremd. Der ggt von a 1,..., a n ist bis auf das Vorzeichen eindeutig bestimmt. Denn, ist d ein weiterer ggt für a 1,..., a n, teilen sich d und d gegenseitig, so daß d = ±d folgt.

2 KAPITEL 1. EUKLIDISCHER ALGORITHMUS Weniger evident ist die Existenz von ggt(a, b). Eine Möglichkeit besteht darin, a und b in Primfaktoren zu zerlegen. Seien p 1,..., p r die Primzahlen, die in a oder b als Teiler enthalten sind. Dann gibt es ganze Zahlen e 1,..., e r, f 1,..., f r 0 so daß a = ±p e 1 1... per r und b = ±p f 1 1... pfr r (e i = 0 bedeutet, daß p i kein Teiler von a ist). Die gemeinsamen Teiler von a und b sind dann von der Form z = ±p g 1 1... pgr r mit g i {0, 1,..., m i }, m i = min(e i, f i ), und es folgt ggt(a, b) = ±p m 1 1... p mr r. Vom Standpunkt des Rechnens ist die Primfaktorzerlegung unbefriedigend, denn die Zerlegung einer Zahl in ihre Primfaktoren ist sehr rechenaufwendig. Wir gehen hier anders vor und klären die Existenzfrage, indem wir ein Rechenverfahren angeben, das größte gemeinsame Teiler liefert. Es beruht auf einer grundlegenden Eigenschaft ganzer Zahlen, der Division mit Rest. Zu ganzen Zahlen a, b 0 gibt es ganze Zahlen q, r, so daß a = qb + r mit 0 r < b. Dabei ist q = a/b der ganzzahlige Quotient von a und b, d.h. die größte ganze Zahl kleiner gleich a/b. Es gilt 0 a/b a/b < 1. Berechnung des ggt. Die Idee des Euklidischen Algorithmus ist es, aus zwei Zahlen den ggt schrittweise herauszudividieren. Die Grundform des Algorithmus arbeitet mit positiven, ganzzahligen Quotienten a 0 /a 1 und erzeugt eine Folge von kleiner werdenden positiven Resten a 0, a 1,.... Das folgende Programm kommt mit zwei Speicherplätzen a 0, a 1 aus, bei zyklischem Recycling. Algorithmus 1 Euklidischer Algorithmus EINGABE : m, n N mit m > n 1. a 0 := m, a 1 := n [ ] [ ] [ ] a0 0 1 a0 2. =, 1 a 0 /a 1 a 1 a 1 ( in der zentrierten Variante wird a 0 /a 1 ersetzt durch die nächste ganze Zahl a 0 /a 1 zu a 0 /a 1.) 3. IF a 1 0 THEN GOTO 2 AUSGABE : a 0 = ggt(n, m) In Schritt 2 wird der Rest a 0 a 0 /a 1 a 1 [0, a 1 [ gebildet und auf a 1 zurückgespeichert, das alte a 1 wird zu a 0. Damit gilt stets a 0 > a 1 0. Im zentrierten Algorithmus gilt dagegen stets a 0 > a 1. Speichert man nicht auf a 0, a 1 zurück, lautet die Rekursion von Schritt 2 a i+1 := a i 1 a i 1 /a i a i für i=1,2,...

3 Hier ist die Schrittfolge bei Eingabe von m = 512 und n = 447: a 0 a 1 a 0 /a 1 512 447 1 447 65 6 65 57 1 57 8 7 8 1 8 1 0 512 = 1 447 + 65 447 = 6 65 + 57 65 = 1 57 + 8 57 = 7 8 + 1 8 = 8 1 + 0 Der Algorithmus liefert ggt(512, 447) = 1, d.h. 512 und 447 sind relativ prim. Der Euklidischen Algorithmus ist leicht übertragbar auf Polynome und 2-dimensionale Gitterbasen. Algorithmus 2 Euklidischer Algorithmus für Polynome EINGABE : g, h K[x] mit h 0 und grad(g) grad(h) 1. f 0 := g, f 1 := h. [ ] [ ] [ ] f0 0 1 f0 2. :=, 1 q f 1 f 1 3. IF f 1 0 THEN GOTO 2 AUSGABE : f 0 = ggt(g, h) dabei ist q K[x] Quotient bei der Division f 0 /f 1 derart, daß grad(f 0 qf 1 ) < gradf 1 Reduktion von Polynomen. Sei K ein Körper. Zu den Polynomen g 0, g 1 K[x] berechnet man den ggt(g 0, g 1 ) analog zu (1.1) mit der Rekursion g i+1 = g i 1 q i 1 g i i = 1, 2,... Dabei ist q i 1 Quotient bei der Division von g i 1 durch g i und g i+1 der Rest derart, daß grad(g i+1 ) < grad(g i ). In K[x] gibt es nämlich eine eindeutige Division mit Rest. Seien b 0, b 1 Z n line- Reduktion von Gitterbasen der Dimension 2. ar unabhängige Vektoren. Dann heist L(b 0, b 1 ) = {t 0 b 0 + t 1 b 1 t 0, t 1 Z } = b 0 Z + b 1 Z ein Gitter mit Basis b 0, b 1. Sei, : R n R n R das Standard- Skalarprodukt und b = b, b 1/2 die Euklidische Länge von b R n. Das Gitter L = L(b 0, b 1 ) hat die Determinante

4 KAPITEL 1. EUKLIDISCHER ALGORITHMUS det L = det [ ] 1/2 b0, b 0 b 0, b 1 = ( b b 1, b 0 b 1, b 1 0 2 b 1 2 b 0, b 1 2 ) 1/2. det L(b 0, b 1 ) ist der Flächeninhalt des von den Vektoren b 0, b 1 erzeugten Parallelogramms b 0 [0, 1] + b 1 [0, 1]. Um eine Basis aus kurzen Vektoren des Gitters L := L(b 0, b 1 ) zu konstruieren, geht man wie folgt vor. Vertausche die Vektoren b 0, b 1 so dass b 0 b 1. Iteriere mit den Zeilenvektoren b 0, b 1 [ ] [ ] [ ] b0 0 1 b0 := mit q := b 1 q 0, b 1 / b 0, b 0 b 1 b 1 solange wie q 0 und vertausche am Ende gegebenenfalls b 0, b 1 so dass b 0 b 1. Die Wahl von q liefert b 0 qb 1 = min t Z b 0 tb 1. Bei Abbruch ist b 0 der kürzeste Vektor ( ungleich 0 ) im Gitter L und b 1 ist der kürzeste zu b 0 linear unabhängige Vektor. Ferner gilt b 0 b 1 4 3 det L(b 0, b 1 ). Korrektheit des Euklidischen Algorithmus. Für die Rekursion (1.1), bei der nicht auf a 0, a 1 zurückgespeichert wird, gilt offenbar Wir erhalten ggt(a i 1, a i ) = ggt(a i, a i+1 ). ggt(a 0, a 1 ) = ggt(a j 1, a j ) Für das erste j mit a j+1 = 0 gilt somit ggt(a 0, a 1 ) korrekt berechnet. ggt(a 0, a 1 ) = a j, und damit ist Satz 1.2 Der Euklidische Algorithmus bricht bei Eingabe m, n N mit m > n nach höchstens log 2 (m) Iterationen ab. Beweis. Die Iterationszahl sei die kleinste Zahl j mit a j+1 = 0. Durch Induktion über i zeigen wir a i+1 < a i 1 2 für 1 i j Im Induktionsschritt unterscheiden wir zwei Fälle Falls a i a i 1 2, gilt a i+1 < a i a i 1 2. Falls a i > a i 1 2, gilt a i 1 = a i + a i+1 und somit a i+1 < a i 1 2. Mit a 0 = m folgt a 2i < m 2 i und somit ist die Iterationszahl j log 2 (m).

5 Mit einer Worst-Case-Analyse verbessern wir die Schranke log 2 (m) zu log 1,618 (m). Eine Worst-Case-Eingabe n, m N für j Iterationen liegt vor, wenn n und m minimal für die Iterationszahl j ist (die Iterationszahl ist die kleinste Zahl j mit a j+1 = 0). Dies ist der Fall, wenn a i 1 /a i = 1 für i = 1, 2,..., j 1 a j 1 /a j = 2 a j+1 = 0 Beachte, dass a j 1 /a j = 1 nicht möglich ist, da mit a j+1 = 0 folgen würde, dass a j = a j 1. Die Fibonacci 1 -Folge wird erklärt durch F 0 = 0, F 1 = 1, F j := F j 1 + F j 2 für j 2. Bei Eingabe von m = F j+2 und n = F j+1 gilt im Euklidischen Algorithmus q i = a i 1 /a i = 1 für i = 1, 2,..., j 1 q j = a j 1 /a j = 2 a j+1 = 0 Damit sind die Fibonacci-Zahlen F j+2 und F j+1 Worst-Case-Eingaben für den Euklidischen Algorithmus mit j Iterationen. Es gilt (siehe [K73a], Abschnitt 1.2.8): φ j 2 < F j < φ j 1, F j = φ j / 5 φ := 1+ 5 2 1, 618 ist die Zahl des Goldenen Schnittes. Damit ist die Iterationszahl des Euklidischen Algorithmus bei Eingabe von m und n mit m > n höchstens log φ ( 5m ) 2. Die Iterationszahl des Euklidischen Algorithmus wird weiter erniedrigt, indem man bei der Division mit Rest negative Reste zulässt und den Absolutwert des Restes minimiert. Im zentrierten Euklidischen Algorithmus wird der Quotient a i 1 /a i durch die nächste ganze Zahl a i 1 /a i approximiert, x = def x 1 2. Die Rekursion (1.1) lautet dann a i+1 := a i 1 a i 1 /a i a i i = 1, 2,... Damit ist a i+1 [ a i 2, a i 2 [ die Zahl in a i 1 + a i Z mit kleinstem Absolutwert. Die Iterationszahl ist höchstens log (1+ 2) m + O(1) mit 1 + 2 2, 414. Für die Effizienz des Euklidischen Algorithmus ist jedoch weniger die Iterationszahl maßgebend als die Anzahl der Maschinenzyklen oder die Anzahl 1 Fibonacci Leonardo, Pisa, 1175 1240, betrachtete die Fortpflanzung von Kaninchenpaaren. Jedes Kaninchenpaar bringt ein Paar der nächsten und ein Paar der übernächsten Generation zur Welt und wird dann verspeist. Die Anzahl der Paare pro Generation ist 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89. Aber warum hat das Schneeglöckchen 3 Blütenblätter, die Butterblume 5, der Rittersporn 8, die Ringelblume 13, Astern 21, Gänseblümchen 34 oder 55 oder 89?

6 KAPITEL 1. EUKLIDISCHER ALGORITHMUS der Bitoperationen. Hierzu löst man die Multiplikationen und Divisionen auf in Additionen/Subtraktionen und Shifts. Dies führt zu den binären Algorithmen 4 und 5, die mit Links-Shifts (Multiplikationen mit 2) bzw. Rechts- Shifts (Divisionen durch 2) arbeiten. Im Vorgriff darauf untersuchen wir die Anzahl der Bitoperationen, welche für einen Iterationsschritt a i+1 := a i 1 a i 1 /a i a i von (1.1) benötigt werden. Diese hängt von der Bitlänge der Zahlen a i 1, a i ab. Sei k i die Bitlänge von a i = k i 1 j=0 a i,j2 j mit a i,j {0, 1}. Dann geht die Berechnung von a i+1 mit Multiplikation/Division nach der Schulmethode mit O(k i (k i 1 k i+1 )) Bitoperationen. Die Gesamtzahl der Bitoperationen ist somit O( i k i(k i 1 k i+1 )) = O(k 0 k 1 ). Bei Eingabe von k-bit Zahlen m = a 0, n = a 1 fallen also nach der Schulmethode O(k) 2 Bitoperationen an. Die Anzahl der Bitoperationen kann weiter reduziert werden, indem man vorweg die führenden Bits der Zahlen transformiert und die Transformationsschritte auf den niedrigen Bits gebündelt nachträgt, siehe Schönhage, Proc. ISSAC 91, pp. 128 133, 1991. Erweiterter Euklidischer Algorithmus Nach dem Satz von Bézout 2 (Satz A.25 auf Seite 115) kann der größte gemeinsame Teiler zweier Zahlen n, m Z als ganzzahlige Linearkombination von n und m darstellt werden. Es existieren also b, c Z mit ggt(n, m) = mb + nc. Um die Koeffizienten b und c zu bestimmen, erweitern wir den Euklidischen Algorithmus. Hier ist die Schrittfolge bei Eingabe von m = 7247 und n = 3721: a 0 a 1 a 0 /a 1 b 0 b 1 c 0 c 1 7247 3721 1 1 0 0 1 3721 3526 1 0 1 1 1 3529 195 18 1 1 1 2 195 16 12 1 19 2 37 16 3 5 19 229 37 446 3 1 3 229 1164 446 2267 1 0 Der erweiterte Euklidische Algorithmus liefert für m = 7247 und n = 3721 2 Bézout, Étienne, Nemours 1730 1783 1 = ggt(m, n) = 1164 m 2267 n.

7 Algorithmus 3 Erweiterter Euklidischer Algorithmus EINGABE : 1. [ ] a0 b 0 c 0 := a 1 b 1 c 1 m, n N mit m > n [ m 1 ] 0 n 0 1 / stets gilt: a i = mb i + nc i für i = 0, 1 sowie a 0 > a 1 0 / [ ] [ ] [ ] a0 b 2. 0 c 0 0 1 a0 b := 0 c 0 a 1 b 1 c 1 1 a 0 /a 1 a 1 b 1 c 1 3. IF a 1 0 THEN GOTO 2 AUSGABE : (a 0, b 0, c 0 ) mit a 0 = ggt(m, n) = mb 0 + nc 0 Erweiterter, binärer Euklidischer Algorithmus. die Bitlänge von a. Es gilt l(0) = 1 und für a 0 Zu a Z sei l(a) 2 l(a) 1 a = l(a) 1 i=0 a i 2 i < 2 l(a), a i {0, 1}, a l(a) 1 = 1. Für das Vorzeichen sign(a) {±1, 0} gilt a = sign(a) a. Algorithmus 4 Erweiterter, binärer Euklidischer Algorithmus EINGABE : m, n N mit m > n [ ] [ ] a0 b 1. 0 c 0 m 1 0 := a 1 b 1 c 1 n 0 1 / stets gilt: a i = mb i + nc i für i = 1, 2 sowie a 0 > a 1 / [ ] [ ] [ ] a0 b 2. 0 c 0 0 1 a0 b := 0 c 0 a 1 b 1 c 1 1 2 ll(a 0) l(a 1 ) sign(a 0 a 1 ) a 1 b 1 c 1 3. IF a 1 0 THEN GOTO 2 AUSGABE : (a 0, b 0, c 0 ) mit a 0 = ggt(m, n) = mb 0 + nc 0 Der Algorithmus führt nur Additionen, Subtraktionen und Links-Shifts (Multiplikationen mit 2-er Potenzen) durch. Es treten positive und negative Werte a 0, a 1 auf. Die Anzahl der Iterationen ist durch l(m) beschränkt. Die Anzahl der Iterationen ist im Mittel für zufällige m, n nur 2 3l(m). Denn die binäre Länge l(a 0 ) wird pro Iteration mindestens um 1, in der Hälfte der Fälle aber um 2 erniedrigt. Wichtig ist, dass Addition, Subtraktion und Shift bei geeigneter Zahlendarstellung und Rechnerarchitektur jeweils nur

8 KAPITEL 1. EUKLIDISCHER ALGORITHMUS einen Maschinenzyklus erfordern. Damit ist die Anzahl der Maschinenzyklen des binären Euklidischen Algorithmus durch die Bitlänge der Eingabe beschränkt. Haben m und n höchstens die Bitlänge k dann geht die Berechnung von ggt(n, m) in O ( k 2) Bitoperationen. Die Anzahl der Bitoperationen im Euklidischen Algorithmus kann weiter reduziert werden, indem man vorweg die führenden Bits der Zahlen transformiert und die Transformationsschritte auf den niedrigen Bits gebündelt nachträgt, siehe Schönhage, Proc. ISSAC 91, pp. 128 133, 1991. Beim gebündelten Nachtragen benutzt man die schnelle Multiplikation/Division mittels Fouriertransformation mit O(k log k log log k) Bitoperationen. Auf diese Weise geht der Euklidische Algorithmus in O(k(log k) 2 log log k) Bitoperationen. Zusammenfassend kann man sagen, dass der Rechenaufwand zur Berechnung von ggt(m, n) dieselbe Größenordnung hat wie der zur Berechnung des Produkts m n. Euklidischer Algorithmus mit Parität.* Algorithmus 5 ist schnell, liefert aber keine explizite Darstellung ggt(m, n) = mb + nc mit ganzen Zahlen b, c. Algorithmus 5 ist vorteilhaft, wenn die Eingaben m, n nicht explizit gegeben sind, aber auf die Parität von m, n zugegriffen werden kann. Algorithmus 5 Binärer Euklidischer Algorithmus EINGABE : m, n N mit m > n 1. k := 0, u := m, v := n 2. WHILE u und v gerade DO u := u/2, v := v/2, k := k + 1 3. IF v gerade THEN vertausche u und v 4. WHILE u gerade DO u := u/2 5. IF u < v THEN vertausche u und v 6. u := u v 7. IF u 0 THEN GOTO 4 AUSGABE : 2 k v = ggt(m, n) Die Division durch 2 bedeutet Verschieben der Bits um eine Position nach rechts. Man nennt diese Operation daher Rechts-Shift. Alle Divisionen des Algorithmus 5 sind Rechts-Shifts. Das Verfahren 5 ist schnell, weil Addition, Subtraktion und Rechts-Shift bei geeigneter Zahlendarstellung und Rechnerarchitektur jeweils nur einen Maschinenzyklus erfordern. Zur Korrektheit von Algorithmus 5 zeigt man durch Induktion, dass stets ggt(n, m) = 2 k ggt(u, v), im einzelnen:

9 es gilt stets ggt(n, m) = 2 k ggt(u, v). In Schritt 4 ist u gerade und v ungerade, somit ggt(u, v) = ggt(u/2, v). In Schritt 6 gilt ggt(u, v) = ggt(u v, v). Bei Eintritt in Schritt 6 sind u und v ungerade; die Subtraktion u := u v erzeugt eine gerade Zahl u, so dass anschließend in Schritt 4 ein Rechts- Shift erfolgt. Die ganzen Zahlen u, v sind nicht negativ und nehmen ab. Weil auf jede Subtraktion in Schritt 6 ein Rechts-Shift folgt, gibt es nicht mehr Subtraktionen als Rechts-Shifts. Satz 1.3 Der binäre Euklidische Algorithmus 5 benötigt bei Eingabe von n, m N mit 0 < m, n < 2 k höchstens 2k Rechts-Shifts und 2k Subtraktionen. Die Zahl der Bitoperationen ist O(k 2 ).

10 KAPITEL 1. EUKLIDISCHER ALGORITHMUS

11 Kapitel 2 Kettenbrüche und Kontinuanten Der Kettenbruchalgorithmus ist eine Variante des Euklidischen Algorithmus. Er liefert zu einer beliebigen reellen Zahl α mit 0 α < 1 eine Folge ganzer Quotienten q 1, q 2,..., q j,... N und rationale Näherungsbrüche q 1, q 2,..., q j zu α. Die Näherungsbrüche q 1, q 2,..., q j minimieren den Fehler α q 1,..., q j für rationale Näherungen mit beschränktem Nenner. Kettenbruchnäherungen sind sowohl für Irrationalzahlen als auch für rationale Zahlen nützlich, wenn mit beschränktem Nenner und kleinem Fehler gerechnet werden soll. Neben dem Kettenbruchalgorithmus mit positiven Quotienten gibt es, analog zum zentrierten Euklidischen Algorithmus, eine zentrierte Variante. Dabei werden die Reste absolut minimiert, es treten auch negative Reste und Quotienten auf. Die Näherungsbrüche im zentrierten Kettenbruchalgorithmus konvergieren schneller. Die Kontinuanten sind eine Folge von Polynomen, welche die Reste im Euklidischen Algorithmus als Werte der Quotienten darstellen. Sie sind durch eine Rekursion erklärt, ähnlich derjenigen der Fibonacci-Zahlen und haben schwache Symmetrie-eigenschaften. Ein regelmäßiger Kettenbruch hat folgen- Regelmäßige Kettenbrüche. de Gestalt x 1, x 2,..., x n = x 1 + 1 1... x n 1 + 1 x n

12 KAPITEL 2. KETTENBRÜCHE UND KONTINUANTEN Algorithmus 6 approximiert eine reelle Zahl α durch eine Folge von Kettenbrüchen q 1, q 2,..., q i, i = 1, 2,... mit ganzzahligen Gliedern q i. Die Glieder q i N entsprechen den Quotienten, die reellen α i, 0 α i < 1 den Resten des Euklidischen Algorithmus. Es gilt für i 2 α = q 1 + α 1 = q 1, q 2 + α 2 = = q 1,..., q i 1, q i + α i (2.1) mit q i + α i = 1/α i 1, also α = α 0 = 1 q 1 + α 1 = 1 = 1 q 1 + q 2 + α 2 Algorithmus 6 Kettenbruchentwicklung einer reellen Zahl 0 α < 1 EINGABE : α R mit 0 α < 1 1. α 0 := α, i := 0 2. WHILE α i 0 DO α i+1 := 1 α i 1, gib q αi i+1 := 1 aus, i := i + 1 αi Die Glieder q i und Reste α i im Algorithmus 6 sind nicht negativ, es gilt stets 0 α i < 1. In der zentrierten Variante von Algorithmus 6 werden 1 α i und q i+1 durch die nächste ganze Zahl 1 α i ersetzt. Es treten dann auch negative α i, q i auf. Die zentrierte Variante liefert absolut größere Glieder q i mit q i 2 und absolut kleinere Reste α i. Bei Eingabe von α = n m entspricht Verfahren 6 dem Euklidischen Algorithmus zu m, n, die zentrierte Variante entspricht dem zentrierten Euklidischen Algorithmus. Im Spezialfall α = 0 liefert Algorithmus 6 keine Ausgabe. Wir identifizieren den leeren Kettenbruch mit α = 0, 0 =. Satz 2.1 Die Kettenbruchentwicklung zu α bricht genau dann ab, wenn α rational ist. Beweis. Wenn die Kettenbruchentwicklung mit α j = 0 abbricht, gilt α = q 1,..., q j = q 1 + 1 1... q j 1 + 1 q j

13 Wegen q 1, q 2,..., q j Z gilt α Q. Für rationales α = n m mit m > n sind die Glieder q i des Kettenbruchs zu α die Quotienten im Euklidischen Algorithmus zur Eingabe m, n aus Kapitel 1.1. Es gilt daher α = q 1,..., q j+1 für die Iterationszahl j des Euklidischen Algorithmus. Wir schreiben den Kettenbruch x 1,..., x i als gewöhn- Kontinuanten. lichen Bruch x 1 = 1 x 1 x 1, x 2 = x 1, x 2, x 3 = 1 x 1 + 1 x 2 = x 2 x 1 x 2 + 1 1 = 1 x 1 + x 2 + 1 x 3 1 x 1 + x 3 x 2 x 3 +1 = x 2 x 3 + 1 x 1 x 2 x 3 + x 1 + x 3 Die Zähler- und Nenner-Polynome von x 1,..., x i heißen Kontinuanten. Def inition 2.2 Die Kontinuanten Q i Z[x 1,..., x i ], i = 0, 1,..., sind die Polynome: Q 0 = 1, Q 1 = x 1 Q i (x 1,..., x i ) = x 1 Q i 1 (x 2,..., x i ) + Q i 2 (x 3,..., x i ) für i 2. Die Rekursion der Kontinuanten gleicht derjenigen der Fibonacci-Zahlen, es gilt Q i (1, 1,..., 1) = F i. Beispiele für Kontinuanten sind: Q 2 (x 1, x 2 ) = x 1 x 2 + 1, Q 3 (x 1, x 2, x 3 ) = x 1 x 2 x 3 + x 1 + x 3 Lemma 2.3 Für i = 1, 2,... gilt x 1,..., x i = Q i 1(x 2,...,x i ) Q i (x 1,x 2,...,x i ). Beweis durch Induktion über i, Induktionsschritt i 1 i : x 1,..., x i = 1 x 1 + x 2,..., x i = 1 x 1 + Q i 2(x 3,...,x i ) Q i 1 (x 2,...,x i ) = Q i 1 (x 2,..., x i ) x 1 Q i 1 (x 2,..., x i ) + Q i 2 (x 3,..., x i )

14 KAPITEL 2. KETTENBRÜCHE UND KONTINUANTEN Lemma 2.4 Q i (x 1,..., x i ) ist die Summe der Monome, die aus x 1 x 2 x i entsteht, indem man beliebige Paare x j x j+1 herausnimmt. Das Lemma 2.4 beweist man durch Induktion über i mittels der Rekursionsformel für die Q i. Aus Lemma 2.4 folgt Q i (x 1,..., x i ) = Q i (x i, x i 1,..., x 1 ). Die Kontinuanten sind also schwach symmetrisch. Die Kontinuanten Q i sind gerade für gerades i und ungerade für ungerades i, d.h. Q i ( x 1,..., x i ) = ( 1) i Q i (x 1,..., x i ). Die Transformationsmatrix zum Euklidischen Algorithmus mit Quotienten x 1,..., x i hat folgende Form: Lemma 2.5 Für i = 1, 2,... gilt [ ] [ ] [ ] [ ] 0 1 0 1 0 1 Qi 2 (x a) = 2,..., x i 1 ) Q i 1 (x 2,..., x i ) 1 x 1 1 x 2 1 x i Q i 1 (x 1,..., x i 1 ) Q i (x 1,..., x i ) ( [ ] [ ] [ ] 0 1 0 1 0 1 ) b) det = ( 1) 1 x 1 1 x 2 1 x i. i Beweis. a) Beweis durch Induktion über i: i = 1 : [ ] 0 1 = 1 x 1 [ ] Q 1 Q 0 Q 0 Q 1 (x 1 ) i i + 1 : [ Qi 3 (x 2,..., x i 2 ) ] [ Q i 2 (x 2,..., x i 1 ) 0 ] 1 Q i 2 (x 1,..., x i 2 ) Q i 1 (x 1,..., x i 1 ) 1 x i [ ] Qi 2 (x = 2,..., x i 1 ) Q i 3 (x 2,..., x i 2 ) + x i Q i 2 (x 2,..., x i 1 ) Q i 1 (x 1,..., x i 1 ) Q i 2 (x 1,..., x i 2 ) + x i Q i 1 (x 1,..., x i 1 ) [ ] Qi 2 (x = 2,..., x i 1 ) Q i 1 (x 2,..., x i 1 ) Q i 1 (x 1,..., x i 1 ) Q i (x 1,..., x i ) b) Die Determinantenfunktion multiplikativ ist. Korollar 2.6 Für q 1,..., q i Z sind Q i 1 (q 1,..., q i ) und Q i (q 1,..., q i ) teilerfremd. Nach Lemma 2.5 gilt 1 Q i (q 1,..., q i )Z + Q i+1 (q 1,..., q i+1 )Z und es folgt die Behauptung des Korollars.

15 Näherungsgesetze. Es seien q 1,..., q i die Glieder im regelmäßigen oder im zentrierten Kettenbruch α = α 0 = q 1,..., q i + α i = Q i 1(q 2,...,q i ) Q i+1 (q 1,...,q i,1/α i,) zu α mit 0 < α < 1 und α = q 1,..., q i + α i = q 1,..., q i, 1/α i mit Näherungsbruch a i = q 1,..., q i = Q i 1(q 2,..., q i ) b i Q i (q 1,..., q i ) Dann gilt nach Lemma 2.5 [ ] ai 1 a det i = a i 1 b i a i b i 1 = ( 1) i, und b i 1 Der Fehler der Näherung a i b i b i a i b i a i 1 b i 1 = a ib i 1 a i 1 b i b i 1 b i ist damit = ( 1)i 1 b i 1 b i. α a i b i = q 1,..., q i, 1/α i q 1,..., q i = ( 1) i b i Q i+1 (q 1,..., q i, 1/α i ) Nun gilt stets Q i+1 (q 1,..., q i, 1 α i ) Q i (q 1,..., q i ) = b i, denn im regelmäßigen Kettenbruch sind alle Glieder positiv und im zentrierten absolut größer gleich 2. Somit erhalten wir: Satz 2.7 (Näherungsgesetz von Lagrange) Im regelmäßigen wie im zentrierten Kettenbruch von α gilt für die Näherung := q 1,..., q i, dass α a i b i b i 2, somit α = lim i q 1,..., q i. a i b i Wir setzen q 1,..., q i,... = def lim q 1,..., q i für q 1, q 2,... N. Zur i Irrationalzahl q 1, q 2,..., q i,... sind die rationalen Zahlen q 1,..., q i Näherungsbrüche. Zu q 1,..., q i sind q 1,..., q j, j = 1,..., i, Näherungsbrüche. Korollar 2.8 Zu jeder Folge (q i ) Z N 0 gibt es eine irrationale Zahl α = q 1,..., q i,.... Zu jeder irrationalen Zahl α mit 0 < α < 1 gibt es eine eindeutig bestimmte Folge (q i ) N N >0 mit α = q 1,..., q i,.... Beispiele von Kettenbruchentwicklungen. Sei φ = 1 2 (1 + 5) = A B = die Zahl des goldenen Schnitts (Übungsaufgabe B.13): A+B A φ = 1 + 1, 1, 1, 1.... regelmäßig

16 KAPITEL 2. KETTENBRÜCHE UND KONTINUANTEN Die Eulersche Zahl: φ = 2 + 3, 3, 3, 3 e = 2 + 1, 2, 1, 1, 4, 1, 1, 6, 1, 1, 8, 1, 1, 10,... e = 3 + 4, 2, 5, 2, 7, 2, 9, 2, 11, 2, 13,... zentriert Die Entwicklung von π beginnt mit großen Gliedern: π = 3 + 7, 15, 1, 292, 1, 1, 1, 2, 1, 3, 1, 14, 2, 1, 1,... π = 3 + 7, 16, 294, 10, 3,... regelmäßig zentriert zentriert Quadratische Irrationalzahlen 2 3 = 1, 4, 2 = 1, 4, 2, 4, 2, regelmäßig 2 3 = 1, 5, 2, 4 zentriert regelmäßig Satz 2.9 (Euler, Lagrange) Jeder periodische Kettenbruch stellt eine quadratische Irrationalzahl dar (Euler). Die Kettenbrüche quadratischer Irrationalzahlen sind stets periodisch (Lagrange). Den Beweis zu Satz 2.9 findet man in [?, Kapitel 24-25]. Die Güte eines Näherungsbruches a b zu α messen wir durch den Faktor α a b b2. Besonders genaue Näherungen q 1,..., q i treten auf, wenn ein großes Kettenbruchglied q i+1 folgt. Wegen q i+1 = 1 α i, bzw q i+1 = 1 α i ist dann der Rest α i und der Approximationsfehler klein. Die regelmäßige Kettenbruchentwicklung π = 3 + 7, 15, 1, 292, 1, liefert die Näherungsbrüche π 22 7 0, 0049 7 2, π 223 106 0, 9 106 2 π 355 113 0, 0034 113 2. Den vorzüglichen Näherungen 22 7, 355 113 folgen große Glieder q 2 = 15, q 4 = 292. Auf die wenig günstige Näherung 223 106 folgt ein kleines Glied q 3 = 1. Alle Näherungen a i b i, auf die eine Glied q i+1 = 1 folgt, werden im zentrierten Kettenbruch übersprungen. Der zentrierte Kettenbruch π = 3 + 7, 16, 294, 10, 3, liefert die Näherungen 22 7, 355 10438 113 und dann π 33215 0, 36 33215 2. Die Glieder q i des zentrierten Kettenbruchs sind absolut größer gleich 2 und im Mittel doppelt so groß wie im regelmäßigen Kettenbruch. Damit liefert die zentrierte Kettenbruchentwicklung eine Auswahl von besonders günstigen Näherungen. Dagegen liefert die regelmäßige Variante eine vollständige Aufzählung aller akzeptablen Näherungen. Nach Legendre treten alle rationalen Approximationen a b zu α mit Fehler kleiner gleich 1 2 b 2 als Näherungsbrüche in der Kettenbruchentwicklung von α auf, siehe [Pe54, Kapitel 13].

17 Optimalität der Näherung, Irrationalität von 2. Nach dem Näherungsgesetz von Lagrange hat jeder Näherungsbruch a b zu α die Fehlerschranke α a b b 2. Wir zeigen, dass diese Approximationsgüte für α = 2 nahezu optimal ist. Sei a/b eine beliebige, rationale Näherung von 2 mit 2 + a b < 3. Es folgt 2 a b 2 + a b = 2 ( a b )2 = 2b 2 a 2 1 b 2 1 b 2 2 a b 1/( 2 + a b b2 ) 1/(3b 2 ). Dabei gilt 2b 2 a 2 0, denn 2b 2 = a 2 steht im Widerspruch zur eindeutigen Primfaktorzerlegung der ganzen Zahlen. Die Primzahl 2 kommt in 2b 2 mit ungerader Vielfachheit, in a 2 aber mit gerader Vielfachheit vor. Insbesondere ist 2 damit irrational. Gute Näherung mit Nenner gegebener Größe. Um zu α eine gute Näherung p q zu finden mit gegebener Größenordnung von p, q = O(2n ), α p q = O( q 2) geht man wie folgt vor. Man reduziert eine Gitterbasis, bestehend aus den Vektoren b 0 = (2 2n α, 1) b 1 = (2 2n, 0). Der Reduktionsalgorithmus ist analog zum Euklidischen Algorithmus von Kapitel 1. Das Gitter L(b 0, b 1 ) hat die Determinante [ 2 det 2n α, 2 2n ] = 2 2n. 1, 0 Für den kürzesten Gittervektor b = qb 0 pb 1 0 mit p, q Z gilt b 2 = 2 4n (qα p) 2 + q 2 4 3 22n und somit α p q ( 4 3 )1/4 2 n q 1 und q ( 4 3 )1/4 2 n. Insbesondere folgt 2 n ( 3 4 )1/4 q 1, und somit α p q 4 3 q 2. Damit liefert der kürzeste Gittervektor eine akzeptable Näherung p q mit q ( 4 3 )1/4 2n. Wenn p q keine besonders vorzügliche Näherung ist, muss auch der zweite Basisvektor einer reduzierten Basis eine ähnlich gute Näherung 4 liefern. Für die reduzierte Basis b 0, b 1 gilt nämlich b 0 b 1 3 22n. Geometrische Interpretation des Kettenbruchalgorithmus. Gute rationale Näherungen a b zur reellen Zahl α entsprechen ganzzahlige Punkte (b, a) Z 2 in der Zahlenebene mit kleinem Abstand d(a, b) = def a αb zur Gerade y = αx.