Prof. Dr. V. Strehl Informatik 8 19. Januar 2006 Übungen zu Theoretische Informatik 3 WS 2005/06 That’s the trouble with rules — they don’t always work. If you depend on rules to replace thought, one day you will be forced to think and you won’t know how. G. Rawlins in dem Buch Compared to what? • Aufgabe 34: Schnelle Exponentiation [Klausuraufgabe Herbst 2002] Wieviele Multiplikationen (incl. Quadrierungen) benötigt das Verfahren der “schnellen Exponentiation” für die Berechnung von ak in einer Halbgruppe (a) für k = 234 ? (b) im Mittel (bei Gleichverteilung über alle Möglichkeiten) für Exponenten k mit Bitlänge `(k) = n ? • Aufgabe 35 (optional): Aufwand für banale und schnelle Exponentiation im Vergleich Es sei (H, ∗) eine Halbgruppe. Für h ∈ H bezeichne khk die “Grösse” von h. Es wird nun angenommen, – dass sich die Grösse bei der Multiplikation additiv verhält, d.h. kh ∗ kk = khk + kkk (also insbesondere gilt bei Exponentiation: khi k = i · khk); – dass Aufwand für eine Multiplikation (h, k) 7→ h ∗ k multiplikativ von der von den Grössen der Operanden abhängt, d.h. wie c · khk · kkk. Dises Annahmen treffen beispielsweise dann zu, wenn man ganze Zahlen (konventionell) multipliziert und den Aufwand in Ziffern-Operationen misst, wobei Zahlen logarithmische Grösse haben, also die Grösse khk = log |h| die Anzahl der Ziffern ist. Analoges gilt für die (konventionelle) Multiplikation von Polynomen (über einem Körper), deren Grösse der Grad (= Anzahl der Koeffizienten + 1 ) ist, wenn man die Anzahl der arithmetischen Operationen mit Koeffizienten misst. n Sei nun h ∈ H und N = 2n − 1. Die Aufgabe ist, das Element hN = h2 −1 zu berechnen. Man kann das entweder mit der “banalen” oder mit der “schnellen” Methode machen: a) b) x←h for i from 1 to N − 1 do x←x∗h end for Return(x) x ← h, y ← h for i from 1 to n − 1 do y ←y∗y x←x∗y end for Return(x) Bestimmen Sie nun den Aufwand der beiden Verfahren, indem Sie feststellen, welche Operanden in den jeweiligen Schleifendurchläufen miteinander multipliziert werden und was das in Abhängigkeit von deren Grösse kostet. Überrascht Sie das Ergebnis? 1 • Aufgabe 36: Ordnungen von Matrizen Vorbemerkung: – Ist R ein Ring (mit kommutativer Multiplikation), so bezeichne Mk (R) den Ring der (k × k)-Matrizen mit Koeffizienten in R, wobei Addition und Multiplikation von Matrizen wie —üblich definiert sind. Dass Mk (R) tatsächlich ein Ring ist, kann man routinemässig nachrechnen. Was man noch wissen sollte: eine Matrix A ∈ Mk (R) ist genau dann invertierbar, wenn det (A) im Ring R invertierbar ist. – Ist N ∈ N>1 , so kann man den Ring Mk (Z) und den Ring Mk (ZN ) betrachten. Für A ∈ Mk (Z bezeichnet AN die Matrix ∈ Mk (ZN ), bei der die Koeffizienten von A modulo N reduziert sind. Die Abbildung A 7→ AN ist ein Homomorphismus, insbesondere gilt also für beliebige Potenzen: (∗) At N = (AN )t (t ∈ N) wobei auf der linken Seite die Potenz in Mk (Z) berechnet wird und auf der rechten Seite in Mk (ZN ). Man kann also ohne Missverständnisse einfach AtN schreiben. – Wegen der Homomorphieeigenschaft gilt det (A) mod N = det (AN ). wobei die Determinante auf der linken Seite in Z und auf der rechten Seite in ZN berechnet wird. – AN ist genau dann invertierbar in Mk (ZN ), wenn ggT( det (A), N ) = 1 ist. In diesem Fall ist A−1 N = (AN )−1 Dann gilt (∗) für alle t ∈ Z. – Der Begriff der Ordnung einer invertierbaren Matrix A ∈ Mk (R) ist wie üblich zu verstehen: das ist die kleinste Zahl t ∈ N>0 so dass At die Einheitsmatrix ist, geschrieben ordR (A) = t bzw. ordN (A) = t falls R = ZN . 1. Zeigen Sie, dass jede invertierbare Matrix A ∈ Mk (ZN ) endliche Ordnung hat. Geben Sie eine von k und N abhängige obere Schranke für die Ordnung an. 2. Zeigen Sie, dass für A ∈ Mk (Z) und N, M ∈ N>1 gilt: ordkgV(N,M ) (A) = kgV (ordN (A), ordM (A)) . 3. Wie üblich bezeichne (fn )n≥0 = (0, 1, 1, 2, 3, 5, 8, 13, 21, 34, . . .) die Folge der Fibonacci-Zahlen, deren Eigenschaften man untersuchen kann, indem man Potenzen der Fibonacci-Matrix F betrachtet: 0 1 fn−1 fn n F = , also F = . 1 1 fn fn+1 Wegen det F = −1 ist FN ∈ M2 (ZN ) für jedes N ∈ Z>1 invertierbar. (a) (b) (c) (d) Bestimmen Sie die Ordnungen von F2 , F3 und F5 . Was sind die Ordnungen von F6 , F10 , F15 , F30 ? Was ist f99 mod 3 und was ist f1.000.000 mod 3? Berechnen Sie die letzte Ziffer der Dezimaldarstellung von f1.000.000 . 2