Drittes Übungsblatt

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