Prof. Dr. V. Strehl Informatik 8 May 7, 2002 Übungen zur Einführung in die Theoretische Informatik 3 SS 2002 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? 7. Fortsetzung von Aufgabe 4 (Zweites Übungsblatt) Wie verändern sich die Ergebnisse, wenn ein 10-mal schnellerer Rechner (also 104 Operationen pro Sekunde) zur Verfügung steht? 8. Asymptotischer Vergleich von Funktionen (a) Zeigen Sie, dass für Funktionen f, g : N → R+ gilt: O(f (n)+g(n)) = O(max(f (n), g(n))) (b) Zeigen Sie, dass für Konstanten a, b (wobei b > 0) gilt: (n + a)b ∈ Θ(nb ). (c) Zeigen Sie, dass die Binomialkoeffizienten nk , wenn man sie für festes k ∈ N als Funktion von n betrachtet, Polynome sind. Zum Beispiel: n0 = 1, n1 = n, n2 = n(n−1) . 2 Allgemein: nk ist ein Polynom vom Grad k, also nk ∈ Θ(nk ). Für welche Konstante ck gilt nk ∼ ck · nk ? (d) Vergleichen √ Sie das asymptotische Wachstum der beiden Funktionen f : n 7→ 2 log n und g : n 7→ nc , wobei 0 < c < 1 eine Konstante ist. Von welcher Stelle an ist die schneller wachsende Funktion immer grösser? (NB: diese Stelle hängt natürlich von c ab.) (e) Bekanntlich gilt loga n ∈ Θ(logb n) für Basen a, b > 1. Aber gilt auch 2loga n ∈ Θ(2logb n )? 9. Mittlere Bitlänge — Komplexität des Grössenvergleichs (a) Betrachten sie in dieser Aufgabe für festes n ≥ 1 die Menge [0..2n − 1] als einen mit der Gleichverteilung (d.h. Wahrscheinlichkeit 2−n für jedes Element) ausgestatteten Wahrscheinlichkeitsraum. Die Längenfunktion `(k) = blog kc + 1 für ganze Zahlen1 `n : [0..2n − 1] → {1, 2, . . . , n} : k 7→ blog kc + 1 ist dann eine auf [0..2n − 1] definierte Zufallsvariable. Es bezeichne Ln = E(`n ) den Mittelwert (Erwartungswert) dieser Zufallsvariablen. Zeigen Sie: 1 Ln = n − 1 + n−1 2 (Überprüfen Sie das direkt für kleine Werte von n !) Hinweis: zeigen Sie n X X `(k) = 1 + j · 2j−1 0≤k<2n 1 j=1 Dabei wird log(0) = 0 gesetzt, damit 0 die Länge 1 erhält. 1 Die Auswertung der rechten Summe kann man mittels n n n X X X d j · 2j−1 = j · xj−1 = xj dx x=2 x=2 j=1 j=1 j=1 angehen (endliche geometrische Reihe!). (b) Anwendung: Stellt man natürliche Zahlen in der Binärdarstellung dar, so entspricht der Grössenvergleich der Zahlen dem Vergleich ihrer Bitdarstellungen in lexikografischer Ordnung. Dazu bezeichne Bn = {hbn−1 , bn−2 , . . . , b1 , b0 i ; bj ∈ {0, 1} (0 ≤ j < n)} die Menge des Bitvektoren der Länge n. Die Abbildung n Bn → [0..2 − 1] : hbi = hbn−1 , bn−2 , . . . , b1 , b0 i 7→ n−1 X b j 2j j=0 ist eine Bijektion. (Warum?) Für jede ganze Zahl k ∈ [0..2n − 1] bezeichne dann hki2 ∈ Bn deren Urbild, d.h. die Binärdarstellung der Länge k (mit führenden Nullen!). i. Zeigen Sie, dass für x, y ∈ [0..2n − 1] gilt: x < y ⇔ hxi2 <lex hyi2 Dabei bezeichnet <lex die auf 0 <lex 1 basierende lexikografische Ordnung auf Bn . ii. Hat man Zahlen anhand Ihrer Bit-Darstellung der Grösse nach zu vergleichen, so benutzt man die lexikografische Ordnung. Wie? Formulieren Sie einen Algorithmus. iii. Für praktische Anwendungen interessant ist die Frage nach der mittleren Anzahl Vn von Vergleichen auf Bit-Ebene, die man braucht, um von zwei beliebigen Bitvektoren ∈ Bn zu entscheiden, welcher lexikografisch grösser ist (oder ob sie gleich sind). Hierbei sei Bn mit der Gleichverteilung ausgestattet. Begründen Sie die Aussage: Vn = n − Ln + 1 (Hinweis: zwei Bitvektoren gleicher Länge unterscheiden sich, von links gelesen, erstmals an der Position j, wenn ihre komponentenweise gebildete xor-Summe an dieser Position j die erste 1 (von links gelesen) hat.) Wie verhält sich also Vn bei wachsendem n? Wie drückt sich dies mit der LandauNotation aus? Was hat das für Konsequenzen in Bezug auf uniformes vs. logarithmisches Kostenmaß, falls es um den Grössenvergleich von natürlichen Zahlen geht? 2