Vorlesung Mathematische Strukturen“ ” Sommersemester 2017 Prof. Janis Voigtländer Übungsleitung: Dennis Nolte Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Weitere Grundlagen Zur Erinnerung: Im Analysis-Teil der Vorlesung haben wir uns mit kontinuierlicher Mathematik beschäftigt, insbesondere viel mit den reellen Zahlen gearbeitet. In vielen Problemstellungen etwa der Informatik hat man es jedoch eher mit endlichen oder abzählbaren Bereichen zu tun. Dies entspricht dann diskreter Mathematik, bzw. oft in irgendeiner Form der Arbeit mit den natürlichen oder den ganzen Zahlen. Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Weitere Grundlagen Jetzt betrachten wir einige zahlentheoretische Grundlagen, da man mit deren Hilfe: Gleichungen in ganzen Zahlen lösen kann, Kryptographie betreiben kann (z.B. RSA), Beispiele für endliche Rechenstrukturen erhält. Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Zahlentheorie Motivation: Lösungsmengen von Gleichungen der Form a · x + b · y = c entsprechen bekannterweise Geraden: y In den reellen Zahlen gibt es also jeweils unendlich viele Lösungspaare (x, y ). x Aber wie sieht es mit Lösungsmengen in den ganzen Zahlen aus? Scheinbar kann es sein, dass es keine, eine, oder mehrere Lösungen gibt. Von Interesse sind Fälle, in denen a, b, c selbst ganze Zahlen sind (hier für alle außer die rote Gerade der Fall). Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Zahlentheorie Ganzzahlige Division mit kleinstem Rest Sei a ∈ Z und b ∈ N0 \ {0}. Dann gibt es eindeutig bestimmte z ∈ Z und r ∈ N0 mit z ·b+r =a und r < b z heißt Ergebnis der ganzzahligen Division von a durch b und man schreibt z = a div b r heißt Rest der ganzzahligen Division von a durch b und man schreibt r = a mod b Beispiel: 14 div 4 = 3, und 14 mod 4 = 2, weil 3 · 4 + 2 = 14 Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Zahlentheorie Konkret berechnen (z.B. bei Verwendung eines Taschenrechners) lassen sich Ergebnis und Rest der ganzzahligen Division folgendermaßen: jak jak a div b = und a mod b = a − b · b b Dabei steht bqc mit q ∈ Q für das Ergebnis beim Abrunden von q zur nächsten ganzen Zahl. D.h., bqc ist die größte ganze Zahl, die kleiner gleich q ist. Beispiele: b3c = 3, b5,17c = 5, b−1c = −1, b−0,7c = −1 Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Zahlentheorie Gewissermaßen ein Spezialfall der ganzzahligen Division (nämlich ohne verbleibenden Rest), jedoch mit auch negativem Divisor erlaubt, ist die Teilbarkeit: Teilbarkeit ganzer Zahlen Seien a, b ∈ Z. Man sagt, b teilt a, wenn es ein z ∈ Z gibt mit z · b = a. Wir schreiben auch b | a und nennen b einen Teiler von a. Bemerkungen: Hier wird auch b ≤ 0 erlaubt, siehe oben. Die Relation | (Teilbarkeit) ist eine partielle Ordnung, wenn man sie auf die natürlichen Zahlen einschränkt. Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Zahlentheorie Beispiele: Gelten folgende Beziehungen? 2 | 18 −7 | 14 3 | 10 0|0 0|7 7|0 (Ja, z = 9) (Ja, z = −2) (Nein) (Ja, z beliebig) (Nein) (Ja, z = 0) Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Zahlentheorie Primzahlen Eine natürliche Zahl p heißt Primzahl, wenn folgendes gilt: p ≥ 2 und die einzigen Teiler von p in den natürlichen Zahlen sind 1 und p selbst. Primzahlen: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, . . . Es gibt unendlich viele Primzahlen. Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Zahlentheorie Eindeutigkeit der Primfaktorzerlegung Sei n ∈ N0 \ {0}. Ein Produkt p1 · . . . · pm = n von Primzahlen heißt Primfaktorzerlegung von n. Jedes n besitzt eine solche Primfaktorzerlegung. Wenn man zudem verlangt, dass die Primfaktoren in aufsteigender Reihenfolge angeordnet sind (pi ≤ pj für i < j), so ist die Primfaktorzerlegung sogar eindeutig. Bemerkungen: Die Primfaktorzerlegung von 1 ist das leere Produkt (m = 0 oben). Wenn wir auch die 1 als Primzahl einführen würden, so würden wir die Eindeutigkeit der Primfaktorzerlegung verlieren. (z.B.: 7 = 1 · 7 = 1 · 1 · 7 = . . . ) Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Zahlentheorie Größter gemeinsamer Teiler Seien a, b ∈ N0 , aber nicht beide gleich 0. Ein t ∈ N0 \ {0} heißt größter gemeinsamer Teiler von a und b, geschrieben t = ggT (a, b), falls folgendes gilt: t | a und t | b, d.h., t teilt sowohl a als auch b, und für jede andere natürliche Zahl t 0 , die sowohl a als auch b teilt, gilt: t 0 ≤ t, bzw. sogar t 0 | t. Bemerkungen: Der ggT ist immer eindeutig bestimmt. Für jedes c > 0 gilt: ggT (0, c) = c = ggT (c, 0). Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Zahlentheorie Kleinstes gemeinsames Vielfaches Seien a, b ∈ N0 . Ein v ∈ N0 heißt kleinstes gemeinsames Vielfaches von a und b, geschrieben v = kgV (a, b), falls folgendes gilt: a | v und b | v , d.h., sowohl a als auch b teilen v , und für jede andere natürliche Zahl v 0 , die sowohl von a als auch von b geteilt wird, gilt: v | v 0 . Bemerkungen: Auch das kgV ist immer eindeutig bestimmt. Es gilt stets: ggT (a, b) · kgV (a, b) = a · b. Also kgV (0, 0) = 0 und ansonsten kgV (a, b) = Mathematische Strukturen Sommersemester 2017 a·b ggT (a,b) Grundlagen 2 Zahlentheorie Wie bestimmt man den größten gemeinsamen Teiler? Bestimmung des ggT – Methode 1, für a, b > 0 Bestimme die Primfaktorzerlegungen von a und b. Betrachte alle Primfaktoren p, die in beiden Zerlegungen vorkommen: angenommen p kommt in a genau m-mal und in b genau n-mal vor. Dann kommt p in ggT (a, b) genau min(m, n)-mal vor. Beispiel: Bestimmung von ggT (12, 30) 12 = 2 · 2 · 3 und 30 = 2 · 3 · 5 ggT (12, 30) = 2 · 3 = 6 Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Zahlentheorie Präferiert (vor allem mit Modifikation von nächster Folie): Bestimmung des ggT – Methode 2 (Euklidischer Algorithmus) ggT (a, 0) = a ggT (0, b) = b ggT (a, b) = ggT (b, a), falls 0 < a < b ggT (a, b) = ggT (a − b, b), falls a ≥ b > 0 Wende die letzten beiden Regeln so lange an, bis einer der ersten beiden Fälle erreicht ist. Beispiel: Bestimmung von ggT (12, 30) ggT (12, 30) = ggT (30, 12) = ggT (18, 12) = ggT (6, 12) = ggT (12, 6) = ggT (6, 6) = ggT (0, 6) = 6 Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Zahlentheorie Bemerkung: Da es bei großen Zahlen sehr schwer ist, die Primfaktorzerlegung zu finden, ist Methode 2 bei weitem effizienter, insbesondere wenn man dort die letzte Regel durch ggT (a, b) = ggT (b, a mod b), falls a ≥ b > 0 ersetzt. Beispiel: Bestimmung von ggT (12, 30) ggT (12, 30) = ggT (30, 12) = ggT (12, 6) = ggT (6, 0) = 6 Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Zahlentheorie Der ggT und die ggT -Berechnung sind ein wichtiges Werkzeug für das Lösen bestimmter Gleichungen. Lösen linearer diophantischer Gleichungen Seien a, b, c ∈ N0 , aber nicht sowohl a als auch b gleich 0. Wir suchen Lösungen x, y ∈ Z der Gleichung a·x +b·y =c Es gilt: Diese Gleichung ist genau dann lösbar, wenn ggT (a, b) | c. Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Zahlentheorie Bei a · x + b · y = ggT (a, b) kann man Werte für x und y dadurch bestimmen, dass man die ggT -Berechnung per Methode 2 (Euklidischer Algorithmus) rückwärts“ nachvollzieht. ” Beispiel: Lösen von 12 · x + 30 · y = 6 ggT (12, 30) = ggT (30, 12) = ggT (18, 12) = ggT (6, 12) = ggT (12, 6) = ggT (6, 6) = ggT (0, 6) = 6 Dabei wurden die neu auftretenden“ positiven Zahlen, also die ” außer 12, 30 und 0, ja so ermittelt: 18 = 30 − 12, 6 = 18 − 12. Nun kann man rückwärts einsetzen: 6 = 18 − 12 = ( 30 − 12 ) − 12 = 12 · (−2) + 30 · 1 Und damit hat man eine Lösung: x = −2 und y = 1. Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Zahlentheorie Verwendet man die Modifikation des Euklidischen Algorithmus, mit ggT (a, b) = ggT (b, a mod b) statt ggT (a, b) = ggT (a − b, b) im Fall a ≥ b > 0, dann geht es allgemein schneller. Beispiel: Lösen von 12 · x + 30 · y = 6 ggT (12, 30) = ggT (30, 12) = ggT (12, 6) = ggT (6, 0) = 6 Hier trat nur die 6 während der Berechnung neu auf, und wurde so ermittelt: 6 = 30 mod 12. Wegen a mod b = a − b · (a div b) heißt das: 6 = 30 − 12 · (30 div 12) = 30 − 12 · 2 und damit wieder x = −2 und y = 1. Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Zahlentheorie Allgemein muss man auch bei Verwendung dieser Modifikation des Euklidischen Algorithmus zum Gleichungslösen mehrfach rückwärts einsetzen. Beispiel: Lösen von 147 · x + 11 · y = 1 ggT (147, 11) = ggT (11, 4) = ggT (4, 3) = ggT (3, 1) = ggT (1, 0) = 1 Hier wurden neu auftretende Werte so ermittelt: 4 = 147 mod 11, 3 = 11 mod 4, 1 = 4 mod 3. Bzw.: 4 = 147 − 11 · (147 div 11), 3 = 11 − 4 · (11 div 4), 1 = 4 − 3 · (4 div 3). Rückwärts Einsetzen liefert: 1 = 4 − 3 · 1 = 4 − ( 11 − 4 · 2) · 1 = 11 · (−1) + 4 · 3 = 11 · (−1) + ( 147 − 11 · 13) · 3 = 147 · 3 + 11 · (−40) Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Zahlentheorie Aber nicht alle Gleichungen von Interesse haben ja die Form a · x + b · y = ggT (a, b). Insbesondere hatten wir behauptet, dass a · x + b · y = c lösbar ist (genau dann) wenn ggT (a, b) | c, nicht unbedingt c = ggT (a, b). Gleichungen der Form a · x + b · y = c mit c 6= ggT (a, b), aber ggT (a, b) | c, kann man folgendermaßen lösen: Zunächst die Gleichung a · x 0 + b · y 0 = ggT (a, b) lösen. Dann die Lösungen x 0 , y 0 mit ergibt die Lösungen x, y . c ggT (a,b) multiplizieren, das Beispiel: Lösen von 12 · x + 30 · y = 24 Lösen von 12 · x 0 + 30 · y 0 = 6 ergibt x 0 = −2, y 0 = 1. Multiplizieren mit 24 6 = 4 ergibt x = −8, y = 4. Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Zahlentheorie Weitere Bemerkungen: Gibt es eine Lösung für a · x + b · y = c, dann gibt es noch unendlich viele andere Lösungen. Die Voraussetzung a, b, c ∈ N0 kann man mit etwas Nachdenken zu a, b, c ∈ Z aufweichen. Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Zahlentheorie Teilerfremdheit Zwei Zahlen a und b heißen teilerfremd falls ggT (a, b) = 1. Eulersche ϕ-Funktion Die Eulersche ϕ-Funktion ϕ : N0 → N0 ist folgendermaßen definiert: ϕ(n) = |{m ∈ N0 | 1 ≤ m ≤ n und ggT (m, n) = 1}| Also ϕ(n) ist die Anzahl der Zahlen von 1 bis n, die zu n teilerfremd sind. Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Zahlentheorie Beispiele (Eulersche ϕ-Funktion): n 0 1 2 3 4 5 6 ϕ(n) 0 1 1 2 2 4 2 n 7 8 9 10 11 12 13 ϕ(n) 6 4 6 4 10 4 12 Für jede Primzahl p gilt ϕ(p) = p − 1. Außerdem gilt: ϕ(m · n) = ϕ(m) · ϕ(n), falls m und n teilerfremd sind. ϕ(p k ) = p k − p k−1 , falls p eine Primzahl ist. Mathematische Strukturen Sommersemester 2017 Grundlagen 2 Zahlentheorie Satz von Euler-Fermat Für teilerfremde Zahlen m, n ∈ N0 \ {0} mit n > 1 gilt: mϕ(n) mod n = 1 Mathematische Strukturen Sommersemester 2017