übungen-11

Werbung
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
Herunterladen