TECHNISCHE UNIVERSITÄT DARMSTADT Fachbereich Mathematik Prof. Dr. Christian Herrmann Matthias Bergner Lars Schewe Wintersemester 2004/2005 2./3. Dezember 2004 Lineare Algebra I 7. Übung mit Lösungshinweisen Aufgabe G1 Bestimme x (und ggf. y und z) in den folgenden Ausdrücken: (a) 825 + 615 + 34 ≡ x mod 7 Lösung: x ≡ 825 + 615 + 34 ≡ 125 + (−1)15 + 81 ≡= 1 − 1 + 4 ≡ 4 mod 7 (b) x · 7 ≡ 1 mod 11 Lösung: Der euklidische Algorithmus liefert: 8 · 7 − 5 · 11 = 1. Somit können wir x = 8 setzen. (c) z = ggT(45, 34) = 45x + 34y Lösung: Der euklidische Algorithmus liefert: (−3) · 45 + 4 · 34 = 1. Somit gilt: x = −3, y = 4 und z = 1. (d) 91x + 26y = 1001 Lösung: Der euklidische Algorithmus liefert: 91−3·26 = 13. Somit gilt 11·7·(1·91−3·26) = 1001. Also 77 · 91 − 231 · 26 = 1001. Aufgabe G2 In dieser Aufgabe wollen wir uns ein paar mehr oder weniger bekannte Teilbarkeitsregeln anssehen. Hierzu müssen wir zunächst Darstellung für eine ZahlP im Dezimali system festlegen. Wir schreiben für eine Zahl n ∈ Z mit n ≥ 0 wie folgt n = m i=0 ai · 10 , wobei für die ai ∈ {0, . . . , 9} gilt. Mache Dir zunächst klar, dass die ai einfach die Ziffern in der üblichen Dezimaldarstellung sind. Formuliere folgende Aussagen als Teilbarkeitsregeln und beweise sie dann: (a) a0 ≡ n mod 2 Lösung: n = Pm i=0 ai · 10i ≡ a0 + Pm · 10i ≡ a0 + i=1 ai Pm i=1 0 ia i ≡ a0 mod 2 (b) 10a1 + a0 ≡ n mod 4 Lösung: n = mod 4 (c) Pm i=0 (d) i=0 ai · 10i ≡ a0 + 10a1 + Pm i=2 ai · 10i ≡ a0 + 10a1 + Pm i=2 0i ai ≡ a0 + 10a1 ai ≡ n mod 9 Lösung: n = Pm Pm i=0 (−1) i Pm i=0 ai · 10i ≡ Pm i=0 ai 1 i ≡ Pm i=0 ai mod 9 ai ≡ n mod 11 Lösung: n = Pm i=0 ai · 10i ≡ Pm i=0 ai (−1) i ≡ Pm i=0 (−1) ia i mod 11 Aufgabe G3 In der obigen Aufgabe einfach angenommen, dass wir jede ganze P haben wir i Zahl n mit n ≥ 0, in der Form n = m a · 10 mit ai ∈ {0, . . . , 9} darstellen können. Nur, i=0 i stimmt diese Annahme? Und vor allem, sind die ai eindeutig bestimmt? (a) Zeige, dass jede ganze Zahl n mit n ≥ 0 eindeutig in der Form n = ai ∈ {0, . . . , 9} dargestellt werden kann. Pm i=0 ai · 10i mit Hinweis: Wie würdest Du vorgehen, wenn Du die Ziffern ausrechnen müsstest? Versuche nun, dieses Vorgehen zu formalisieren. Lösung: Mit dem Hinweis können wir einen Algorithmus für die Berechnung der a i angeben. Wählen wir zunächst m so, dass 10m ≤ n < 10m+1 gilt. Nun können wir folgende Schritte durchführen: 1. Setze j:=m. 2. Bestimme durch Division mit Rest q und r so dass n = q10 j + r gilt. 3. Setze aj := q und n := r 4. Solange j > 0, setze j := j − 1 und gehe zu Schritt 2. Nun zeigen wir, dass dieser Algorithmus die gewünschte Darstellung liefert. Nehmen wir hierzu an, es gäbe ein oder mehrere Zahlen für die der Algorithmus nicht funktioniert. Sei n die kleinste unter diesen. Nun setzen wir m, wie gewünscht, so dass 10 m ≤ n < 10m+1 . Dies geht offensichtlich eindeutig für alle n. Mit Algorithmus 8.8 aus dem Skript erhalten wir nun q und r, so dass n = 10m q + r sowie 0 ≤ q < 10 und r < 10m gilt (Warum?). Wenn wir am = q setzen, erhalten wir also n = am · 10m + r. Da nun aber nach Annahme n die kleinste Zahl war, für die der P Algorithmus nicht funktioniert, muss er für r funktionieren. Somit erhalten wir, dass r = ti=0 ai 10i gilt, mit 0 ≤ ai ≤ 9. Da aber r < 10m war, muss t < m gelten. Somit können wir die Darstellungen kombinieren (indem wir ggf. für t < i < m P i im Widerspruch zur Annahme. Damit sind a 10 die ai = 0 setzen) und erhalten n = m i=0 i wir fertig. (b) Allgemeiner, sei b ≥ 2. Zeige dass jede ganze Zahl n mit n ≥ 0 eindeutig in der Form Pm n = i=0 ai · bi mit ai ∈ {0, . . . , b − 1} dargestellt werden kann. Lösung: Der Beweis geht genauso wie in Aufgabenteil (a). Aufgabe G4 Wir betrachten die Zahl n! = 1 · 2 · · · (n − 1) · n. Wie oft taucht nun der Faktor 2 in n! auf? Anders formuliert: Finde 2 (n) so, dass 22 (n) | n! und 22 (n)+1 - n!. Gib ein Verfahren an, mit dem man 2 (n) effektiv ermitteln kann. Teste Dein Verfahren mit kleinen Zahlen, z.B. n = 10 oder n = 100. Hinweis: Betrachte n in seiner Binärdarstellung. Zum Vergleich: 2 (100) = 97. Lösung: Hier kurz das Verfahren (ohne Beweis): 1. Setze e := 0 und m := n. 2. Setze m := b m 2 c. 3. Setze e := e + m. 4. Wenn m = 0 gilt, sind wir fertig und 2 (n) = e. Ansonsten gehen wir wieder zu Schritt 2. Hierbei ist bqc definiert als die größte ganze Zahl n für die n ≤ q gilt; salopp gesprochen, wir runden ab. Mit der Binärdarstellung hat dieses Verfahren insoweit zu tun, als dass die Division durch 2 mit anschließendem Abrunden nichts Anderes ist als das Fallenlassen der letzten Stelle in der Binärdarstellung. Hausübungen Aufgabe H1 Die Internationale Standard-Buch-Nummer (ISBN) besteht aus neun Ziffern d1 , . . . , d9 ∈ {0, . . . , 9} und einer Prüfziffer d10 ∈ {0, . . . , 9, X}, wobei X = 10. Die Prüfziffer d10 wird nun so bestimmt, dass folgende Gleichung erfüllt wird: 10d1 + 9d2 + · · · + 2d9 + d10 ≡ 0 mod 11. (1) Wenn wir nun testen wollen, ob eine ISBN korrekt übermittelt wurde, können wir einfach diese Gleichung überprüfen. Immer wenn sie nicht erfüllt wird, wissen wir sicher, dass die ISBN falsch übermittelt wurde. Wie aber steht es mit der Umkehrung, welche Fehler kann die Prüfziffer nicht entdecken? (a) Prüfe für die ISBN eines beliebigen Buches die Gleichung (1) nach. (b) Versuche nun diese ISBN möglichst wenig zu ändern, so dass Dein Ergebnis immer noch die Gleichung (1) erfüllt. (c) Nehmen wir nun an, die ISBN würde in einer Stelle i falsch übermittelt. Zeige, dass dieser Fehler durch die Prüfziffer immer entdeckt werden kann. P10 Lösung: Für eine Ziffernfolge (di )10 i=1 betrachten wir die Funktion I(d) := i=1 (11 − i)di . 10 , die sich an genau der Stelle k unterscheiBetrachten wir nun die Folgen (di )10 und (e ) i i=1 i=1 den. Nach Voraussetzung gilt I(d) ≡ 0 mod 11. Nehmen wir nun an, es gelte auch noch I(e) ≡ 0. Betrachten wir nun I(d) − I(e). Nach Voraussetzung gilt: 10 X i=1 (11 − i)di − 10 X (11 − i)ei ≡ k(ek − dk ) mod 11. i=1 Somit müsste also nach Annahme k(e k − dk ) ≡ 0 mod 11 gelten. Da Z11 ein Körper ist, muss nun entweder k ≡ 0 mod 11 oder ek − dk ≡ 0 mod 11 gelten. Da Ersteres nicht sein kann (Warum?), muss Zweiteres gelten, daraus folgt aber d k = ek (Warum?). Dies steht im Widerspruch dazu, dass d und e verschieden sind. (d) Was passiert, wenn wir zwei beliebige Ziffern di und dj vertauschen? Wird dieser Fehler immer entdeckt? Lösung: Ja, auch dieser Fehler wird erkannt. Hierzu gehen wir wie oben vor und erhalten folgende Gleichung: (i − j)(dj − di ) ≡ 0 mod 11. Diese Gleichung ist aber nur erfüllt, wenn i = j oder di = dj gilt. Somit wird jede Vertauschung zweier Ziffern erkannt. Aufgabe H2 Eine Möglichkeit verschiedene Körper zu unterscheiden besteht darin ihre sogenannte Charakteristik zu betrachten. Hierzu definieren wir: Sei K ein Körper, dann sagen wir K habe Charakteristik p, wenn p die kleinste positive Zahl ist, so dass 1| + ·{z · · + 1} = 0 gilt. Ansonsten sagen wir, K habe Charakteristik 0. p−mal (a) Zeige, dass die Charakteristik von Zp gleich p, die von R hingegen gleich 0 ist. (b) Zeige, dass jeder endliche Körper eine Charakteristik p > 0 hat. Betrachte hierzu die Folge (ai )i∈ die durch a0 = 0 und ai+1 = ai + 1 definiert ist. Was bedeutet es, wenn es i und j gibt, so dass ai = aj gilt? Lösung: Da jede nicht-leere Teilmenge von N ein Minimum hat, reicht es zu zeigen, dass es mindestens ein k gibt, so dass 1| + ·{z · · + 1} = 0 gilt. Betrachten wir nun die Folge (a i )i∈ k−mal aus dem Hinweis. Sobald wir ein k gefunden haben, dass a k = 0 sind, sind wir nach oben Gesagtem fertig. Da K ein Körper ist, gilt für alle i ∈ N, dass a i ∈ K ist. Da K nach Voraussetzung endlich ist, muss es i und j geben, so dass a i = aj und i < j gilt (Warum?). Nun gilt aj = ai + aj−i (Wieso?). Da K ein Körper ist, gilt also a j−i = 0. Wenn wir also k = j − i setzen, sind wir fertig. (c) Sei K ein Körper von Charakteristik p. Zeige, dass p immer prim sein muss. Lösung: Nehmen wir an, p sei nicht prim. Es gibt also Zahlen q, r ∈ N \ {0, 1}, so dass p = qr gilt. Setzen wir a = 1| + ·{z · · + 1}. Nun gilt a 6= 0 (Wieso?). Nach Definition von a r−mal gilt aber auch die Gleichung a · · + a} = 0 (Warum?). Somit gilt 0 = a(1| + ·{z · · + 1}). Da | + ·{z q−mal q−mal nun aber a 6= 0 gilt, dürfen wir kürzen, so dass wir 0 = 1| + ·{z · · + 1} erhalten. Das ist der q−mal gesuchte Widerspruch (Wieso?). Somit kann p nicht zusammengesetzt gewesen sein. Also gilt die Behauptung. Aufgabe H3 In den ”Neun Büchern arithmetischer Technik” (Übers. Kurt Vogel, Vieweg 1968) einem chinesischen Lehrbuch aus der Han-Zeit (202 v. Chr – 9 n. Chr.) finden wir folgenden Algorithmus um einen Bruch zu kürzen: Die Regel lautet: Das, was halbiert werden kann, halbiere es; kann man es nicht halbieren, dann lege <auf das Rechenbrett> hin den Betrag von Nenner <und> Zähler des Bruches. Um das Kleinere vermindere das Größere. Verändere <die Zahlen> durch gegenseitiges Subtrahieren <sie> verkleinernd, bis Du die gleichen Zahlen bekommst. Mit der gleichen Zahl kürze es. Schreibe den Algorithmus in Deinen eigenen Worten auf, so dass die Anweisungen eindeutig sind. Liefert er immer das korrekte Ergebnis? Wenn Du möchtest, implementiere ihn in einer Programmiersprache Deiner Wahl; warum wurden Varianten dieses Algorithmus gerne bei der Implementation in Assembler verwendet? Lösung: Hier eine Umschrift, die sehr nahe am obigen Text ist, der Bruch, den wir betrachten habe Zähler p und Nenner q. 1. Solange p | 2 und q | 2 gilt, setze p := p 2 und q := 2q . 2. Setze nun k := p und l := q. 3. Wenn k = l gilt, gehe zu Schritt 6. 4. Wenn k < l gilt, setze l := l − k, ansonsten k := k − l. 5. Gehe zu Schritt 3. 6. Setze p := p k und q := kq . Die Korrektheit folgt dann aus der Feststellung, dass für a > b folgt, dass ggT(a, b) = ggT(a−b, b) gilt. Dieser Algorithmus läßt sich zu einer Variante des euklidischen Algorithmus umschreiben (siehe D. E. Knuth, The Art of Computer Programming, Vol. II, Sect. 4.5.2). Diese Variante war in der Implementation insbesondere dann beliebt, wenn die Division langsam war, da diese Variante ohne Divisionen, sondern nur mit Registershifts auskommt.