Willkommen Gliederung "Hallo Welt!" für Fortgeschrittene Friedrich-Alexander-Universität Erlangen-Nürnberg Institut für Informatik Lehrstuhl 2 7. Juni 2005
Willkommen Gliederung Gliederung 1 Repräsentation der Zahlen im Rechner Auslöschung 2 3 Definitionen Lösungsverfahren e 4 Beschreibung des Verfahrens
Gliederung Repräsentation der Zahlen im Rechner Auslöschung 1 Repräsentation der Zahlen im Rechner Auslöschung 2 3 Definitionen Lösungsverfahren e 4 Beschreibung des Verfahrens
Repräsentation der Zahlen im Rechner Repräsentation der Zahlen im Rechner Auslöschung Repräsentation der Zahl mittels einer Liste, welche jede Ziffer als ein Listenelement enthält. freie Wahl der Basis. Implementierung mittels... Feld einfach zu implementieren platzsparende Speicherung jede Stelle direkt adressierbar dynamische Größenanpassung möglich Verkettete Liste aufwendig zu implementieren Overhead durch Pointer mehrere Stellen gruppieren (Mischform) keine direkte Adressierung einfache Größenanpassung
Gliederung Repräsentation der Zahlen im Rechner Auslöschung 1 Repräsentation der Zahlen im Rechner Auslöschung 2 3 Definitionen Lösungsverfahren e 4 Beschreibung des Verfahrens
Auslöschung (Cancellation) Repräsentation der Zahlen im Rechner Auslöschung Auslöschung In der IEEE Arithmetik können die Grundrechenoperationen +/- zur Auslöschung von Informationsstellen führen, z.b. wenn zwei Zahlen fast gleicher Größe subtrahiert werden. : 1, 23456xxxx 10 0-1, 23455xxxx 10 0 1, xxxx 10 5 Beachte Eine Erhöhung der Informationsstellen garantiert also nicht, das unser Ergebnis auch genauer wird. Genauso wichtig ist es, auch den Algorithmus an sich zu analysieren, um Schwachstellen aufzudecken.
Gliederung Repräsentation der Zahlen im Rechner Auslöschung 1 Repräsentation der Zahlen im Rechner Auslöschung 2 3 Definitionen Lösungsverfahren e 4 Beschreibung des Verfahrens
Lösen von quadratischen Gleichungen Repräsentation der Zahlen im Rechner Auslöschung Die Nullstellen der quadratischen Funktion a x 2 + b x + c = 0 mit a 0 sind x 1 = b+ b 2 4ac 2a x 2 = b b 2 4ac 2a Betrachten wir das x 2 + 62.10x + 1 = 0 mit den Lösungen x 1 = 0.01610723 und x 2 = 62.08390. Verwenden wir eine Arithmetik mit 4 Stellen (Basis 10, Mantissenlänge 4) und berechnen die Werte x 1 und x 2 erhalten wir die Lösungen x 1 = 0.02000 und x 2 = 62.10.
Lösen von quadratischen Gleichungen Repräsentation der Zahlen im Rechner Auslöschung Die Nullstellen der quadratischen Funktion a x 2 + b x + c = 0 mit a 0 sind x 1 = b+ b 2 4ac 2a x 2 = b b 2 4ac 2a Betrachten wir das x 2 + 62.10x + 1 = 0 mit den Lösungen x 1 = 0.01610723 und x 2 = 62.08390. Verwenden wir eine Arithmetik mit 4 Stellen (Basis 10, Mantissenlänge 4) und berechnen die Werte x 1 und x 2 erhalten wir die Lösungen x 1 = 0.02000 und x 2 = 62.10.
Lösen von quadratischen Gleichungen Repräsentation der Zahlen im Rechner Auslöschung Die Nullstellen der quadratischen Funktion a x 2 + b x + c = 0 mit a 0 sind x 1 = b+ b 2 4ac 2a x 2 = b b 2 4ac 2a Betrachten wir das x 2 + 62.10x + 1 = 0 mit den Lösungen x 1 = 0.01610723 und x 2 = 62.08390. Verwenden wir eine Arithmetik mit 4 Stellen (Basis 10, Mantissenlänge 4) und berechnen die Werte x 1 und x 2 erhalten wir die Lösungen x 1 = 0.02000 und x 2 = 62.10.
Lösen von quadratischen Gleichungen Repräsentation der Zahlen im Rechner Auslöschung Formen wir die Lösungsgleichung durch Erweitern mit b b 2 4ac und Kürzen um, erhalten wir die folgenden 2 Gleichungen: x 1 = b+ 2c b 2 4ac x 2 = b 2c b 2 4ac Nebenrechnung: x 1 = b+ b 2 4ac 2a x 2 = b b 2 4ac 2a b 2 4ac b b = b 2 (b 2 4ac) 2 4ac 2a ( b b = 2c 2 4ac) b+ b 2 4ac b b 2 4ac b+ b = b 2 (b 2 4ac) 2 4ac 2a ( b+ b = 2c 2 4ac) b b 2 4ac b+
Lösen von quadratischen Gleichungen Repräsentation der Zahlen im Rechner Auslöschung Verwenden wir wieder eine Arithmetik mit 4 Stellen (Basis 10, Mantissenlänge 4) und berechnen diesmal die Werte mit x 1 und x 2 erhalten wir die Lösungen x 1 = 1.610 10 2 und x 2 = 50. Zussamengefasst: Gegeben b± b 2 4ac 2a b± 2c b 2 4ac x 1 0.01610723 0.02000 1.610 10 2 x 2 62.08390 62.10 50
Lösen von quadratischen Gleichungen Repräsentation der Zahlen im Rechner Auslöschung Verwenden wir wieder eine Arithmetik mit 4 Stellen (Basis 10, Mantissenlänge 4) und berechnen diesmal die Werte mit x 1 und x 2 erhalten wir die Lösungen x 1 = 1.610 10 2 und x 2 = 50. Zussamengefasst: Gegeben b± b 2 4ac 2a b± 2c b 2 4ac x 1 0.01610723 0.02000 1.610 10 2 x 2 62.08390 62.10 50
Gliederung 1 Repräsentation der Zahlen im Rechner Auslöschung 2 3 Definitionen Lösungsverfahren e 4 Beschreibung des Verfahrens
Definitionen Teiler a heißt Teiler von b, wenn die Gleichung b = k a mit k Z erfüllt ist. a b k Z : b = k a Primzahl Eine Zahl k, welche nur die trivialen Teiler 1 und k besitzt, nennen wir Primzahl. e: 2, 3, 5, 7, 11, 17, 19, 23,... Teilertheorem Für eine Zahl a und beliebige Zahlen n, gibt es genau ein q und r mit 0 r < n, so dass gilt: a = q n + r
Definitionen Teiler a heißt Teiler von b, wenn die Gleichung b = k a mit k Z erfüllt ist. a b k Z : b = k a Primzahl Eine Zahl k, welche nur die trivialen Teiler 1 und k besitzt, nennen wir Primzahl. e: 2, 3, 5, 7, 11, 17, 19, 23,... Teilertheorem Für eine Zahl a und beliebige Zahlen n, gibt es genau ein q und r mit 0 r < n, so dass gilt: a = q n + r
Definitionen Teiler a heißt Teiler von b, wenn die Gleichung b = k a mit k Z erfüllt ist. a b k Z : b = k a Primzahl Eine Zahl k, welche nur die trivialen Teiler 1 und k besitzt, nennen wir Primzahl. e: 2, 3, 5, 7, 11, 17, 19, 23,... Teilertheorem Für eine Zahl a und beliebige Zahlen n, gibt es genau ein q und r mit 0 r < n, so dass gilt: a = q n + r
Definitionen Gemeinsamer Teiler Eine Zahl d heißt gemeinsamer Teiler von a und b, wenn d a und d b gilt. Größter gemeinsamer Teiler Der größte gemeinsame Teiler zweier Zahlen a und b ist der größte gemeinsame Teiler der Zahlen a und b. teilerfremd bzw. relativ prim Zwei Zahlen a und b sind teilerfremd, wenn ihr größter gemeinsamer Teiler 1 ist.
Definitionen Gemeinsamer Teiler Eine Zahl d heißt gemeinsamer Teiler von a und b, wenn d a und d b gilt. Größter gemeinsamer Teiler Der größte gemeinsame Teiler zweier Zahlen a und b ist der größte gemeinsame Teiler der Zahlen a und b. teilerfremd bzw. relativ prim Zwei Zahlen a und b sind teilerfremd, wenn ihr größter gemeinsamer Teiler 1 ist.
Definitionen Gemeinsamer Teiler Eine Zahl d heißt gemeinsamer Teiler von a und b, wenn d a und d b gilt. Größter gemeinsamer Teiler Der größte gemeinsame Teiler zweier Zahlen a und b ist der größte gemeinsame Teiler der Zahlen a und b. teilerfremd bzw. relativ prim Zwei Zahlen a und b sind teilerfremd, wenn ihr größter gemeinsamer Teiler 1 ist.
Definitionen Euklidischer Algorithmus Der Euklidische Algorithmus dient zur Berechnung des größten gemeinsamen Teilers zweier natürlicher Zahlen. Rekursive Implementierung Iterative Implementierung EUCLID( i n t a, i n t b ) { i f ( b == 0) return a ; else return EUCLID(b, a mod b ) ; } EUCLID( i n t a, i n t b ) { while ( b!= 0 ) { i n t c = b ; b = a mod b ; a = c ; } return a ; }
Definitionen Euklidischer Algorithmus Der Euklidische Algorithmus dient zur Berechnung des größten gemeinsamen Teilers zweier natürlicher Zahlen. Rekursive Implementierung Iterative Implementierung EUCLID( i n t a, i n t b ) { i f ( b == 0) return a ; else return EUCLID(b, a mod b ) ; } EUCLID( i n t a, i n t b ) { while ( b!= 0 ) { i n t c = b ; b = a mod b ; a = c ; } return a ; }
Definitionen Lemma von Bezout a, b N 0 : s, t Z : a s + b t = ggt(a, b) Erweiterter Euklidischer Algorithmus Der erweiterte Euklidische Algorithmus berechnet zusätzlich eine Darstellung des größten gemeinsamen Teilers als Linearkombination. Rekursive Implementierung Iterative Implementierung EX EUCLID( i n t a, i n t b ) { i f ( b == 0) return ( a, 1, 0 ) ; else { ( d, s, t ) = EX EUCLID( b, a mod b ) ; s = t ; t = s t ( a d i v b ) ; return ( d, s, t ) ; } } EX EUCLID( i n t a, i n t b ) { ( d, s, t ) = ( a, 1, 0 ) ; ( d, s, t ) = ( b, 0, 1 ) ; while ( d!= 0) { c = ( d d i v d ) ; ( d, s, t ) = ( d, s, t ) c ( d, s, t ) ; ( d, s, t ) = ( d, s, t ) ; ( d, s, t ) = ( d, s, t ) ; } return ( d, s, t ) ; }
Definitionen Lemma von Bezout a, b N 0 : s, t Z : a s + b t = ggt(a, b) Erweiterter Euklidischer Algorithmus Der erweiterte Euklidische Algorithmus berechnet zusätzlich eine Darstellung des größten gemeinsamen Teilers als Linearkombination. Rekursive Implementierung Iterative Implementierung EX EUCLID( i n t a, i n t b ) { i f ( b == 0) return ( a, 1, 0 ) ; else { ( d, s, t ) = EX EUCLID( b, a mod b ) ; s = t ; t = s t ( a d i v b ) ; return ( d, s, t ) ; } } EX EUCLID( i n t a, i n t b ) { ( d, s, t ) = ( a, 1, 0 ) ; ( d, s, t ) = ( b, 0, 1 ) ; while ( d!= 0) { c = ( d d i v d ) ; ( d, s, t ) = ( d, s, t ) c ( d, s, t ) ; ( d, s, t ) = ( d, s, t ) ; ( d, s, t ) = ( d, s, t ) ; } return ( d, s, t ) ; }
Definitionen Lemma von Bezout a, b N 0 : s, t Z : a s + b t = ggt(a, b) Erweiterter Euklidischer Algorithmus Der erweiterte Euklidische Algorithmus berechnet zusätzlich eine Darstellung des größten gemeinsamen Teilers als Linearkombination. Rekursive Implementierung Iterative Implementierung EX EUCLID( i n t a, i n t b ) { i f ( b == 0) return ( a, 1, 0 ) ; else { ( d, s, t ) = EX EUCLID( b, a mod b ) ; s = t ; t = s t ( a d i v b ) ; return ( d, s, t ) ; } } EX EUCLID( i n t a, i n t b ) { ( d, s, t ) = ( a, 1, 0 ) ; ( d, s, t ) = ( b, 0, 1 ) ; while ( d!= 0) { c = ( d d i v d ) ; ( d, s, t ) = ( d, s, t ) c ( d, s, t ) ; ( d, s, t ) = ( d, s, t ) ; ( d, s, t ) = ( d, s, t ) ; } return ( d, s, t ) ; }
zum erweiterten Euklidischen Algorithmus Berechne den ggt(240, 17) mit Hilfe des erweiterten Euklidischen Algorithmus. 240 1 0 17 0 1 14 2 1-14 8 1-8 113 Die Linearkombination lautet: 8 240 + 113 17 = 1
zum erweiterten Euklidischen Algorithmus Berechne den ggt(240, 17) mit Hilfe des erweiterten Euklidischen Algorithmus. 240 1 0 17 0 1 14 2 1-14 8 1-8 113 Die Linearkombination lautet: 8 240 + 113 17 = 1
zum erweiterten Euklidischen Algorithmus Berechne den ggt(240, 17) mit Hilfe des erweiterten Euklidischen Algorithmus. 240 1 0 17 0 1 14 2 1-14 8 1-8 113 Die Linearkombination lautet: 8 240 + 113 17 = 1
zum erweiterten Euklidischen Algorithmus Berechne den ggt(240, 17) mit Hilfe des erweiterten Euklidischen Algorithmus. 240 1 0 17 0 1 14 2 1-14 8 1-8 113 Die Linearkombination lautet: 8 240 + 113 17 = 1
zum erweiterten Euklidischen Algorithmus Berechne den ggt(240, 17) mit Hilfe des erweiterten Euklidischen Algorithmus. 240 1 0 17 0 1 14 2 1-14 8 1-8 113 Die Linearkombination lautet: 8 240 + 113 17 = 1
zum erweiterten Euklidischen Algorithmus Berechne den ggt(240, 17) mit Hilfe des erweiterten Euklidischen Algorithmus. 240 1 0 17 0 1 14 2 1-14 8 1-8 113 Die Linearkombination lautet: 8 240 + 113 17 = 1
Gliederung 1 Repräsentation der Zahlen im Rechner Auslöschung 2 3 Definitionen Lösungsverfahren e 4 Beschreibung des Verfahrens
Definition Sei n 1,..., n k eine Folge von paarweise teilerfremden natürlichen Zahlen, d.h. i < j [1, k] gilt ggt(n i, n j ) = 1, und sei n := n 1... n k. Für jede Folge r 1 Z n1,..., r k Z nk gibt es genau ein r Z n, so dass i [1, k] gilt r r i ( mod n i ). Einfach gesagt... Zu Gleichungen der Form r r i ( mod n 1 ). r r i ( mod n k ) lässt sich ein r mod n bestimmen, so dass alle Gleichungen erfüllt sind (r (r 1, r 2,..., r k )). Voraussetzung ist, dass alle n i paarweise teilerfremd sind.
Definition Sei n 1,..., n k eine Folge von paarweise teilerfremden natürlichen Zahlen, d.h. i < j [1, k] gilt ggt(n i, n j ) = 1, und sei n := n 1... n k. Für jede Folge r 1 Z n1,..., r k Z nk gibt es genau ein r Z n, so dass i [1, k] gilt r r i ( mod n i ). Einfach gesagt... Zu Gleichungen der Form r r i ( mod n 1 ). r r i ( mod n k ) lässt sich ein r mod n bestimmen, so dass alle Gleichungen erfüllt sind (r (r 1, r 2,..., r k )). Voraussetzung ist, dass alle n i paarweise teilerfremd sind.
Definition Wir haben also folgende 2 Möglichkeiten: r (r 1, r 2,..., r k ) : Dividiere r durch alle n i und stelle jeweils die Gleichung r r i mod n i auf. (r 1, r 2,..., r k ) r: 1 Berechne für alle i = 1, 2,..., k mit Hilfe des erweiterten Euklidischen Algorithmus die Gleichung c i = m i (m 1 i mod n i ), wobei m i = n n i ist. 2 Berechne r mit der Gleichung Beweis siehe [1] oder [3]. r (r 1 c 1 + r 2 c 2 + + r k c k ) mod n.
Gliederung 1 Repräsentation der Zahlen im Rechner Auslöschung 2 3 Definitionen Lösungsverfahren e 4 Beschreibung des Verfahrens
Eine Bande von 17 Räubern stahl einen Sack mit Goldstücken. Als sie ihre Beute teilen wollten, blieben 3 Goldstücke übrig. Beim Streit darüber, wer ein Goldstück mehr erhalten sollte, wurde ein Räuber erschlagen. Jetzt blieben bei der Verteilung 10 Goldstücke übrig. Erneut kam es zum Streit, und wieder verlor ein Räuber sein Leben. Jetzt konnten die Goldstücke endlich gleichmäßig verteilen. Wieviele Goldstücke waren mindestens im Sack? Gesucht ist die kleinste natürliche Zahl x mit x 3 (mod 17) x 10 (mod 16) x 0 (mod 15) Beachte: ggt(17, 16, 15) = 1
Eine Bande von 17 Räubern stahl einen Sack mit Goldstücken. Als sie ihre Beute teilen wollten, blieben 3 Goldstücke übrig. Beim Streit darüber, wer ein Goldstück mehr erhalten sollte, wurde ein Räuber erschlagen. Jetzt blieben bei der Verteilung 10 Goldstücke übrig. Erneut kam es zum Streit, und wieder verlor ein Räuber sein Leben. Jetzt konnten die Goldstücke endlich gleichmäßig verteilen. Wieviele Goldstücke waren mindestens im Sack? Gesucht ist die kleinste natürliche Zahl x mit x 3 (mod 17) x 10 (mod 16) x 0 (mod 15) Beachte: ggt(17, 16, 15) = 1
r 3 (mod17) r 10 (mod16) r 0 (mod15) 1 Berechne c i = m i (m 1 i mod n i ) mit m i = n n i für i = 1, 2,..., k. n = n 1 n 2... n k = 17 16 15 = 4080 c 1 : ggt(17, 4080 ) = 113 17 8 240 = 1 c 1 = 240 ( 8 mod 17) 17 {z } 240 c 2 : ggt(16, 4080 ) = 16 16 1 255 = 1 c 2 = 255 ( 1 mod 16) 16 {z } 255 c 3 : ggt(15, 4080 ) = 127 15 7 272 = 1 c 3 = 272 ( 7 mod 15) 15 {z } 272
r 3 (mod17) r 10 (mod16) r 0 (mod15) 1 Berechne c i = m i (m 1 i mod n i ) mit m i = n n i für i = 1, 2,..., k. n = n 1 n 2... n k = 17 16 15 = 4080 c 1 : ggt(17, 4080 ) = 113 17 8 240 = 1 c 1 = 240 ( 8 mod 17) 17 {z } 240 c 2 : ggt(16, 4080 ) = 16 16 1 255 = 1 c 2 = 255 ( 1 mod 16) 16 {z } 255 c 3 : ggt(15, 4080 ) = 127 15 7 272 = 1 c 3 = 272 ( 7 mod 15) 15 {z } 272
r 3 (mod17) r 10 (mod16) r 0 (mod15) 1 Berechne c i = m i (m 1 i mod n i ) mit m i = n n i für i = 1, 2,..., k. n = n 1 n 2... n k = 17 16 15 = 4080 c 1 : ggt(17, 4080 ) = 113 17 8 240 = 1 c 1 = 240 ( 8 mod 17) 17 {z } 240 c 2 : ggt(16, 4080 ) = 16 16 1 255 = 1 c 2 = 255 ( 1 mod 16) 16 {z } 255 c 3 : ggt(15, 4080 ) = 127 15 7 272 = 1 c 3 = 272 ( 7 mod 15) 15 {z } 272
r 3 (mod17) r 10 (mod16) r 0 (mod15) 1 Berechne c i = m i (m 1 i mod n i ) mit m i = n n i für i = 1, 2,..., k. n = n 1 n 2... n k = 17 16 15 = 4080 c 1 : ggt(17, 4080 ) = 113 17 8 240 = 1 c 1 = 240 ( 8 mod 17) 17 {z } 240 c 2 : ggt(16, 4080 ) = 16 16 1 255 = 1 c 2 = 255 ( 1 mod 16) 16 {z } 255 c 3 : ggt(15, 4080 ) = 127 15 7 272 = 1 c 3 = 272 ( 7 mod 15) 15 {z } 272
r 3 (mod17) r 10 (mod16) r 0 (mod15) 1 Berechne c i = m i (m 1 i mod n i ) mit m i = n n i für i = 1, 2,..., k. n = n 1 n 2... n k = 17 16 15 = 4080 c 1 : ggt(17, 4080 ) = 113 17 8 240 = 1 c 1 = 240 ( 8 mod 17) 17 {z } 240 c 2 : ggt(16, 4080 ) = 16 16 1 255 = 1 c 2 = 255 ( 1 mod 16) 16 {z } 255 c 3 : ggt(15, 4080 ) = 127 15 7 272 = 1 c 3 = 272 ( 7 mod 15) 15 {z } 272
r 3 (mod17) r 10 (mod16) r 0 (mod15) 1 Berechne c i = m i (m 1 i mod n i ) mit m i = n n i für i = 1, 2,..., k. n = n 1 n 2... n k = 17 16 15 = 4080 c 1 : ggt(17, 4080 ) = 113 17 8 240 = 1 c 1 = 240 ( 8 mod 17) 17 {z } 240 c 2 : ggt(16, 4080 ) = 16 16 1 255 = 1 c 2 = 255 ( 1 mod 16) 16 {z } 255 c 3 : ggt(15, 4080 ) = 127 15 7 272 = 1 c 3 = 272 ( 7 mod 15) 15 {z } 272
2 Berechne r (r 1 c 1 + r 2 c 2 + + r k c k ) mod n. r ((3 240 ( 8 mod 17) + 10 255 ( 1 mod 16)) mod (4080) r 3930 mod 4080
2 Berechne r (r 1 c 1 + r 2 c 2 + + r k c k ) mod n. r ((3 240 ( 8 mod 17) + 10 255 ( 1 mod 16)) mod (4080) r 3930 mod 4080
Gliederung Definitionen Lösungsverfahren e 1 Repräsentation der Zahlen im Rechner Auslöschung 2 3 Definitionen Lösungsverfahren e 4 Beschreibung des Verfahrens
Definition Definitionen Lösungsverfahren e Diophantische Gleichung Eine Gleichung f(x 1, x 2,..., x n) = b wird Diophantische Gleichung in n Unbekannten genannt, wenn f ein Polynom in x 1, x 2,..., x n mit Koeffizienten aus der Menge Z der ganzen Zahlen und b eine ganzzahlige Konstante ist und man sich ausschließlich für ganzzahlige Lösungen interessiert. Lineare Diophantische Gleichung Eine lineare Diophantische Gleichung in n Unbekannten ist eine Gleichung der Form a 1 x 1 + a 2 x 2 +... + a n x n = b (a i Z, b Z), für die nur ganzzahlige Lösungen gesucht werden.
Definition Definitionen Lösungsverfahren e Diophantische Gleichung Eine Gleichung f(x 1, x 2,..., x n) = b wird Diophantische Gleichung in n Unbekannten genannt, wenn f ein Polynom in x 1, x 2,..., x n mit Koeffizienten aus der Menge Z der ganzen Zahlen und b eine ganzzahlige Konstante ist und man sich ausschließlich für ganzzahlige Lösungen interessiert. Lineare Diophantische Gleichung Eine lineare Diophantische Gleichung in n Unbekannten ist eine Gleichung der Form a 1 x 1 + a 2 x 2 +... + a n x n = b (a i Z, b Z), für die nur ganzzahlige Lösungen gesucht werden.
Definition Definitionen Lösungsverfahren e Lösungsbedingung Eine Diophantische Gleichung ist genau dann lösbar, wenn der größte gemeinsame Teiler aller a i ein Teiler von b ist und nicht alle a i gleich 0 sind. D. G. ist lösbar ggt(a 1, a 2,..., a n) b und (a 1, a 2,..., a n) (0, 0,..., 0)
Gliederung Definitionen Lösungsverfahren e 1 Repräsentation der Zahlen im Rechner Auslöschung 2 3 Definitionen Lösungsverfahren e 4 Beschreibung des Verfahrens
Lösungsverfahren für n = 2 Definitionen Lösungsverfahren e Sei f : a 1 x 1 + a 2 x 2 = b mit (a 1, a 2 ) (0, 0) eine lösbare Diophantische Gleichung, d.h. ggt(a 1, a 2 ) b. 1 Dividiere die Gleichung f durch den ggt(a 1, a 2 ). Wir erhalten f : a 1 x 1 + a 2 x 2 = b mit ggt(a 1, a 2) = 1. 2 Berechne nun mit dem erweiterten Euklikdischen Algorithmus die Darstellung von 1 als Linearkombination von a 1 und a 2: c 1 a 1 + c 2 a 2 = 1. 3 (c 1 b, c 2 b ) ist nun eine spezielle Lösung der Diophantischen Gleichung f. Lösungsgesamtheit der Gleichung f: Sei (x 0 1, x 0 2 ) eine spezielle Lösung der Gleichung, dann ist die Menge aller Lösungen {(x 0 1 + t a 2, x 0 2 t a 1) t Z}.
Lösungsverfahren für n = 2 Definitionen Lösungsverfahren e Sei f : a 1 x 1 + a 2 x 2 = b mit (a 1, a 2 ) (0, 0) eine lösbare Diophantische Gleichung, d.h. ggt(a 1, a 2 ) b. 1 Dividiere die Gleichung f durch den ggt(a 1, a 2 ). Wir erhalten f : a 1 x 1 + a 2 x 2 = b mit ggt(a 1, a 2) = 1. 2 Berechne nun mit dem erweiterten Euklikdischen Algorithmus die Darstellung von 1 als Linearkombination von a 1 und a 2: c 1 a 1 + c 2 a 2 = 1. 3 (c 1 b, c 2 b ) ist nun eine spezielle Lösung der Diophantischen Gleichung f. Lösungsgesamtheit der Gleichung f: Sei (x 0 1, x 0 2 ) eine spezielle Lösung der Gleichung, dann ist die Menge aller Lösungen {(x 0 1 + t a 2, x 0 2 t a 1) t Z}.
Lösungsverfahren für n = 2 Definitionen Lösungsverfahren e Sei f : a 1 x 1 + a 2 x 2 = b mit (a 1, a 2 ) (0, 0) eine lösbare Diophantische Gleichung, d.h. ggt(a 1, a 2 ) b. 1 Dividiere die Gleichung f durch den ggt(a 1, a 2 ). Wir erhalten f : a 1 x 1 + a 2 x 2 = b mit ggt(a 1, a 2) = 1. 2 Berechne nun mit dem erweiterten Euklikdischen Algorithmus die Darstellung von 1 als Linearkombination von a 1 und a 2: c 1 a 1 + c 2 a 2 = 1. 3 (c 1 b, c 2 b ) ist nun eine spezielle Lösung der Diophantischen Gleichung f. Lösungsgesamtheit der Gleichung f: Sei (x 0 1, x 0 2 ) eine spezielle Lösung der Gleichung, dann ist die Menge aller Lösungen {(x 0 1 + t a 2, x 0 2 t a 1) t Z}.
Lösungsverfahren für n = 2 Definitionen Lösungsverfahren e Sei f : a 1 x 1 + a 2 x 2 = b mit (a 1, a 2 ) (0, 0) eine lösbare Diophantische Gleichung, d.h. ggt(a 1, a 2 ) b. 1 Dividiere die Gleichung f durch den ggt(a 1, a 2 ). Wir erhalten f : a 1 x 1 + a 2 x 2 = b mit ggt(a 1, a 2) = 1. 2 Berechne nun mit dem erweiterten Euklikdischen Algorithmus die Darstellung von 1 als Linearkombination von a 1 und a 2: c 1 a 1 + c 2 a 2 = 1. 3 (c 1 b, c 2 b ) ist nun eine spezielle Lösung der Diophantischen Gleichung f. Lösungsgesamtheit der Gleichung f: Sei (x 0 1, x 0 2 ) eine spezielle Lösung der Gleichung, dann ist die Menge aller Lösungen {(x 0 1 + t a 2, x 0 2 t a 1) t Z}.
Lösungsverfahren für n > 2 Definitionen Lösungsverfahren e Sei f : a 1 x 1 + a 2 x 2 +... + a n x n = b mit (a 1, a 2,..., a n) (0, 0,..., 0) eine lösbare Diophantische Gleichung und der ggt(a 1, a 2,..., a n) = 1. Wäre dies nicht der Fall, müßte man noch durch den ggt dividieren. 1 Forme die Gleichung folgendermaßen um: a 1 x 1 + a 2 x 2 +... + a n 1 x n 1 = b a n x n 2 Betrachte nun x n als eine ganzzahlige Konstante. Wir erhalten eine Diophantische Gleichung mit (n 1) Unbekannten, die genau dann lösbar ist, wenn ggt(a 1, a 2,..., a n 1 ) (b a n x n). 3 Die Bedingung ggt(a 1, a 2,..., a n 1 ) (b a n x n) ist genau dann erfüllt, wenn es ganze Zahlen c und c n gibt, für die gilt: ggt(a 1, a 2,..., a n 1 ) c + a n c n = b Ist diese neue Diophantische Gleichung mit 2 Unbekannten gelöst, hat man nur noch eine Diophantische Gleichung mit (n 1) Unbekannten zu lösen.
Lösungsverfahren für n > 2 Definitionen Lösungsverfahren e Sei f : a 1 x 1 + a 2 x 2 +... + a n x n = b mit (a 1, a 2,..., a n) (0, 0,..., 0) eine lösbare Diophantische Gleichung und der ggt(a 1, a 2,..., a n) = 1. Wäre dies nicht der Fall, müßte man noch durch den ggt dividieren. 1 Forme die Gleichung folgendermaßen um: a 1 x 1 + a 2 x 2 +... + a n 1 x n 1 = b a n x n 2 Betrachte nun x n als eine ganzzahlige Konstante. Wir erhalten eine Diophantische Gleichung mit (n 1) Unbekannten, die genau dann lösbar ist, wenn ggt(a 1, a 2,..., a n 1 ) (b a n x n). 3 Die Bedingung ggt(a 1, a 2,..., a n 1 ) (b a n x n) ist genau dann erfüllt, wenn es ganze Zahlen c und c n gibt, für die gilt: ggt(a 1, a 2,..., a n 1 ) c + a n c n = b Ist diese neue Diophantische Gleichung mit 2 Unbekannten gelöst, hat man nur noch eine Diophantische Gleichung mit (n 1) Unbekannten zu lösen.
Lösungsverfahren für n > 2 Definitionen Lösungsverfahren e Sei f : a 1 x 1 + a 2 x 2 +... + a n x n = b mit (a 1, a 2,..., a n) (0, 0,..., 0) eine lösbare Diophantische Gleichung und der ggt(a 1, a 2,..., a n) = 1. Wäre dies nicht der Fall, müßte man noch durch den ggt dividieren. 1 Forme die Gleichung folgendermaßen um: a 1 x 1 + a 2 x 2 +... + a n 1 x n 1 = b a n x n 2 Betrachte nun x n als eine ganzzahlige Konstante. Wir erhalten eine Diophantische Gleichung mit (n 1) Unbekannten, die genau dann lösbar ist, wenn ggt(a 1, a 2,..., a n 1 ) (b a n x n). 3 Die Bedingung ggt(a 1, a 2,..., a n 1 ) (b a n x n) ist genau dann erfüllt, wenn es ganze Zahlen c und c n gibt, für die gilt: ggt(a 1, a 2,..., a n 1 ) c + a n c n = b Ist diese neue Diophantische Gleichung mit 2 Unbekannten gelöst, hat man nur noch eine Diophantische Gleichung mit (n 1) Unbekannten zu lösen.
Gliederung Definitionen Lösungsverfahren e 1 Repräsentation der Zahlen im Rechner Auslöschung 2 3 Definitionen Lösungsverfahren e 4 Beschreibung des Verfahrens
1. für n = 2 Definitionen Lösungsverfahren e 114x + 315y = 6 1 Prüfe die Lösbarkeitsbedingung. Der ggt(114, 315) = 3 6, somit ist die Gleichung lösbar. 2 Teile die Gleichung durch 3. Wir erhalten 38x + 105y = 2. 3 Wir berechnen mit dem erweiterten Euklidischen Algorithmus, die Linerakombination 47 38 17 105 = 1. 4 (47 2, (17) 2) = (94, 34) ist also eine spezielle Lösung der Diophantischen Gleichung. 5 Die Lösungsmenge der Gleichung ist {(94 + t 105, 34 t 38) t Z}.
1. für n = 2 Definitionen Lösungsverfahren e 114x + 315y = 6 1 Prüfe die Lösbarkeitsbedingung. Der ggt(114, 315) = 3 6, somit ist die Gleichung lösbar. 2 Teile die Gleichung durch 3. Wir erhalten 38x + 105y = 2. 3 Wir berechnen mit dem erweiterten Euklidischen Algorithmus, die Linerakombination 47 38 17 105 = 1. 4 (47 2, (17) 2) = (94, 34) ist also eine spezielle Lösung der Diophantischen Gleichung. 5 Die Lösungsmenge der Gleichung ist {(94 + t 105, 34 t 38) t Z}.
1. für n = 2 Definitionen Lösungsverfahren e 114x + 315y = 6 1 Prüfe die Lösbarkeitsbedingung. Der ggt(114, 315) = 3 6, somit ist die Gleichung lösbar. 2 Teile die Gleichung durch 3. Wir erhalten 38x + 105y = 2. 3 Wir berechnen mit dem erweiterten Euklidischen Algorithmus, die Linerakombination 47 38 17 105 = 1. 4 (47 2, (17) 2) = (94, 34) ist also eine spezielle Lösung der Diophantischen Gleichung. 5 Die Lösungsmenge der Gleichung ist {(94 + t 105, 34 t 38) t Z}.
1. für n = 2 Definitionen Lösungsverfahren e 114x + 315y = 6 1 Prüfe die Lösbarkeitsbedingung. Der ggt(114, 315) = 3 6, somit ist die Gleichung lösbar. 2 Teile die Gleichung durch 3. Wir erhalten 38x + 105y = 2. 3 Wir berechnen mit dem erweiterten Euklidischen Algorithmus, die Linerakombination 47 38 17 105 = 1. 4 (47 2, (17) 2) = (94, 34) ist also eine spezielle Lösung der Diophantischen Gleichung. 5 Die Lösungsmenge der Gleichung ist {(94 + t 105, 34 t 38) t Z}.
1. für n = 2 Definitionen Lösungsverfahren e 114x + 315y = 6 1 Prüfe die Lösbarkeitsbedingung. Der ggt(114, 315) = 3 6, somit ist die Gleichung lösbar. 2 Teile die Gleichung durch 3. Wir erhalten 38x + 105y = 2. 3 Wir berechnen mit dem erweiterten Euklidischen Algorithmus, die Linerakombination 47 38 17 105 = 1. 4 (47 2, (17) 2) = (94, 34) ist also eine spezielle Lösung der Diophantischen Gleichung. 5 Die Lösungsmenge der Gleichung ist {(94 + t 105, 34 t 38) t Z}.
1. für n = 2 Definitionen Lösungsverfahren e 114x + 315y = 6 1 Prüfe die Lösbarkeitsbedingung. Der ggt(114, 315) = 3 6, somit ist die Gleichung lösbar. 2 Teile die Gleichung durch 3. Wir erhalten 38x + 105y = 2. 3 Wir berechnen mit dem erweiterten Euklidischen Algorithmus, die Linerakombination 47 38 17 105 = 1. 4 (47 2, (17) 2) = (94, 34) ist also eine spezielle Lösung der Diophantischen Gleichung. 5 Die Lösungsmenge der Gleichung ist {(94 + t 105, 34 t 38) t Z}.
1. für n > 2 Definitionen Lösungsverfahren e 2x + 4y + 3z = 3 1 Prüfe die Lösbarkeitsbedingung. Der ggt(2, 4, 3) = 1 3, somit ist die Gleichung lösbar. 2 Wir formen die Gleichung folgendermaßen um: 2x + 4y = 3 3z. 3 Diese Gleichung mit den Unbekannten x und y ist genau dann lösbar, wenn ggt(2, 4) (3 3z) ist. Die zugehörige Diophantische Gleichung 2z + 3z = 3 hat die Lösungsmenge {( 3 + t 3, 3 t 2) t Z}. Daraus folgt z = 3 2t. Gesucht ist nun die Lösungsmenge der Diophantischen Gleichung 2x + 4y = 3 3 (3 2t) bzw. x + 2y = 3 + 3t für jedes t Z.
1. für n > 2 Definitionen Lösungsverfahren e 2x + 4y + 3z = 3 1 Prüfe die Lösbarkeitsbedingung. Der ggt(2, 4, 3) = 1 3, somit ist die Gleichung lösbar. 2 Wir formen die Gleichung folgendermaßen um: 2x + 4y = 3 3z. 3 Diese Gleichung mit den Unbekannten x und y ist genau dann lösbar, wenn ggt(2, 4) (3 3z) ist. Die zugehörige Diophantische Gleichung 2z + 3z = 3 hat die Lösungsmenge {( 3 + t 3, 3 t 2) t Z}. Daraus folgt z = 3 2t. Gesucht ist nun die Lösungsmenge der Diophantischen Gleichung 2x + 4y = 3 3 (3 2t) bzw. x + 2y = 3 + 3t für jedes t Z.
1. für n > 2 Definitionen Lösungsverfahren e 2x + 4y + 3z = 3 1 Prüfe die Lösbarkeitsbedingung. Der ggt(2, 4, 3) = 1 3, somit ist die Gleichung lösbar. 2 Wir formen die Gleichung folgendermaßen um: 2x + 4y = 3 3z. 3 Diese Gleichung mit den Unbekannten x und y ist genau dann lösbar, wenn ggt(2, 4) (3 3z) ist. Die zugehörige Diophantische Gleichung 2z + 3z = 3 hat die Lösungsmenge {( 3 + t 3, 3 t 2) t Z}. Daraus folgt z = 3 2t. Gesucht ist nun die Lösungsmenge der Diophantischen Gleichung 2x + 4y = 3 3 (3 2t) bzw. x + 2y = 3 + 3t für jedes t Z.
1. für n > 2 Definitionen Lösungsverfahren e 2x + 4y + 3z = 3 1 Prüfe die Lösbarkeitsbedingung. Der ggt(2, 4, 3) = 1 3, somit ist die Gleichung lösbar. 2 Wir formen die Gleichung folgendermaßen um: 2x + 4y = 3 3z. 3 Diese Gleichung mit den Unbekannten x und y ist genau dann lösbar, wenn ggt(2, 4) (3 3z) ist. Die zugehörige Diophantische Gleichung 2z + 3z = 3 hat die Lösungsmenge {( 3 + t 3, 3 t 2) t Z}. Daraus folgt z = 3 2t. Gesucht ist nun die Lösungsmenge der Diophantischen Gleichung 2x + 4y = 3 3 (3 2t) bzw. x + 2y = 3 + 3t für jedes t Z.
1. für n > 2 Definitionen Lösungsverfahren e x + 2y = 3 + 3t für jedes t Z 4 Die Gleichung ist lösbar, da ggt(1, 2) = 1 ( 3 + 3t). 5 Der erweiterte Euklidische Algorithmus liefert uns ( 1) 1 + 1 2 = 1 und es gilt somit (3 3t) 1 + ( 3 + 3t) 2 = 3 + 3t. Die Lösungsmenge ergibt sich zu {((3 3t) + s 2, ( 3 + 3t) s 1) s Z}. 6 Die Gesamtlösung ist also {((3 3t) + s 2, ( 3 + 3t) s 1, 3 t 2) s, t Z}.
1. für n > 2 Definitionen Lösungsverfahren e x + 2y = 3 + 3t für jedes t Z 4 Die Gleichung ist lösbar, da ggt(1, 2) = 1 ( 3 + 3t). 5 Der erweiterte Euklidische Algorithmus liefert uns ( 1) 1 + 1 2 = 1 und es gilt somit (3 3t) 1 + ( 3 + 3t) 2 = 3 + 3t. Die Lösungsmenge ergibt sich zu {((3 3t) + s 2, ( 3 + 3t) s 1) s Z}. 6 Die Gesamtlösung ist also {((3 3t) + s 2, ( 3 + 3t) s 1, 3 t 2) s, t Z}.
1. für n > 2 Definitionen Lösungsverfahren e x + 2y = 3 + 3t für jedes t Z 4 Die Gleichung ist lösbar, da ggt(1, 2) = 1 ( 3 + 3t). 5 Der erweiterte Euklidische Algorithmus liefert uns ( 1) 1 + 1 2 = 1 und es gilt somit (3 3t) 1 + ( 3 + 3t) 2 = 3 + 3t. Die Lösungsmenge ergibt sich zu {((3 3t) + s 2, ( 3 + 3t) s 1) s Z}. 6 Die Gesamtlösung ist also {((3 3t) + s 2, ( 3 + 3t) s 1, 3 t 2) s, t Z}.
1. für n > 2 Definitionen Lösungsverfahren e x + 2y = 3 + 3t für jedes t Z 4 Die Gleichung ist lösbar, da ggt(1, 2) = 1 ( 3 + 3t). 5 Der erweiterte Euklidische Algorithmus liefert uns ( 1) 1 + 1 2 = 1 und es gilt somit (3 3t) 1 + ( 3 + 3t) 2 = 3 + 3t. Die Lösungsmenge ergibt sich zu {((3 3t) + s 2, ( 3 + 3t) s 1) s Z}. 6 Die Gesamtlösung ist also {((3 3t) + s 2, ( 3 + 3t) s 1, 3 t 2) s, t Z}.
Gliederung Beschreibung des Verafahrens 1 Repräsentation der Zahlen im Rechner Auslöschung 2 3 Definitionen Lösungsverfahren e 4 Beschreibung des Verfahrens
Beschreibung des Verfahrens Beschreibung des Verafahrens Das Gaußsche Eliminationsverfahren ist ein Algorithmus, der es uns ermöglicht, die Lösung von Systemen von Gleichungen zu berechnen, die gleichzeitig erfüllt sein sollen. Lineares Gleichungssystem: Matrixschreibweise: 0 B@ a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a 2n x n = b 2. a n1 x 1 + a n2 x 2 + + a nnx n = b n a 11 a 12 a 1n a 21 a 22 a 2n. a n1 a n2 a nn 10 CA B@ x 1 x 2. x n 1 CA = 0B @ b1 b 2. b n 1 CA
Beschreibung des Verfahrens Beschreibung des Verafahrens Folgende 4 Operationen können auf solchen Gleichungen ausgeführt werden, ohne das sich die Lösung ändert: Vertauschen von Gleichungen: In der Matrixschreibweise entspricht dies einem Vertauschen von Zeilen der Matrix und des Lösungsvektors. Umbenennen von Variablen: Dies entspricht dem Vertauschen von Spalten in der Matrixdarstellung. Multiplizieren von Gleichungen mit einer von Null verschiedenen Zahl: Dies entspricht dem Multiplizieren einer Zeile und des entsprechenden Elements des Lösungsvektors. Addieren eines vielfachen einer Gleichungen zu einer anderen Gleichung: Entspricht dem Addieren eines Vielfachen einer Zeile der Matrix und des Lösungsvektors zu einer anderen.
Beschreibung des Verfahrens Beschreibung des Verafahrens Das Ziel ist es, die Matrix durch Anwendung der 4 Operationen in ein sogenanntes gestaffeltes Gleichungssystem zu überführen. 0 B@ r 11 r 12 r 13 r 1n r 21 r 23 r 2n r 33 r 3n 0...... r nn 10 CA B@ x 1 x 2 x 3. x n 1 0 CA = B@ c 1 c 2 c 3. c n 1 CA Da nur äquivalente Umformungen vorgenommen wurden, besitzt Rx = c dieselbe Lösung wie Ax = b. Man erhält sie aus: x i = 1 c r i P n r ik x k (i = n 1, n 2,, 1; x n = cn ii r nn ) k=i+1
Beschreibung des Verfahrens Beschreibung des Verafahrens In (n 1) sogenannten Eliminationsschritten kann A in R überführt werden. Im folgenden wird der Schritt von A nach A 1 beschrieben. A = 0 B@ a 11 a 12 a 1n a 21 a 22 a 2n a 31 a 32 a 3n. a n1 a n2 a nn 1 0 CA A 1 = B@ a (1) 11 a (1) 12 a (1) 1n 0 a (1) 22 a (1) 2n 0 a (1) 32 a (1) 3n.. 0 a (1) n2 a (1) nn 1 CA 1 Bestimme ein a r1 0. a r1 heißt Pivot. 2 Vertausche die 1. und die r-te Zeile. 3 Subtrahiere für i = 2,, n das l i1 -fache der 1. Zeile von der i-ten Zeile, wobei a (1) ik = a ik l i1 a 1k, l i1 = a i1 und b (1) a 11 i = b i l i1 b 1 ist.
Gliederung Beschreibung des Verafahrens 1 Repräsentation der Zahlen im Rechner Auslöschung 2 3 Definitionen Lösungsverfahren e 4 Beschreibung des Verfahrens
Lösen eines Gleichungssystems Beschreibung des Verafahrens 1 3-4 8 0 2-2 6-1 -2 5-1 1 3-4 8 0 2-2 6 0 1 1 7 1 3-4 8 0 2-2 6 0 0-4 -8 Lösung: x 3 = 2, x 2 = 5, x 1 = 1
Lösen eines Gleichungssystems Beschreibung des Verafahrens 1 3-4 8 0 2-2 6-1 -2 5-1 1 3-4 8 0 2-2 6 0 1 1 7 1 3-4 8 0 2-2 6 0 0-4 -8 Lösung: x 3 = 2, x 2 = 5, x 1 = 1
Lösen eines Gleichungssystems Beschreibung des Verafahrens 1 3-4 8 0 2-2 6-1 -2 5-1 1 3-4 8 0 2-2 6 0 1 1 7 1 3-4 8 0 2-2 6 0 0-4 -8 Lösung: x 3 = 2, x 2 = 5, x 1 = 1
Anhang Anhang Zusammenfassung Literatur Fragen 5 Anhang Zusammenfassung Literatur Fragen
Zusammenfassung Anhang Zusammenfassung Literatur Fragen und hoher Genauigkeit Arithmetik für große Zahlen ist in vielen Bibliotheken bereits enthalten. Eine Analyse des verwendeten Algorithmus selbst ist jedoch auch wichtig. Erlaubt uns die Rekonstruktion eines Wertes x nur durch Angabe von Gleichungen der Form x x i mod n i. Diophantische Gleichungen Ermöglicht es uns ganzzahlige Lösungen von Gleichungen der Form a 1 ẋ 1 + a 2 x 2 +... + a n x n = b zu finden. Liefert uns ein Verfahren zum Lösen von linearen Gleichungen.
Quellen Anhang Zusammenfassung Literatur Fragen Cormen T., Leiserson C., Rivest R., Stein C. [1] Introduction to Algorithms (2nd ed.). The MIT Press, ISBN: 0-262-53196-8 Sedgewick R. [2] Algorithmen in C. ADDISON-WESLEY, ISBN: 3-893-19376-6 Bronstein I.N., Semendjajew K.A., Musiol G., Mühlig H. [3] Taschenbuch der Mathematik (5. Auflage). Verlag Harri Deutsch, 2001. ISBN: 3-817-12005-2 Steven S. Skiena, Miguel Revilla [4] Programming Challenges. Springer, 2003. ISBN: 0-387-00163-8 Prof. Dr. Volker Strehl [5] Theoretische Informatik 3 Skript. Friedrich-Alexander-Universität Erlangen-Nürnberg Institut für Informatik 8
Anhang Zusammenfassung Literatur Fragen Fragen?