Fakultät für Informatik Professur Theoretische Informatik und Informationssicherheit Prof. Dr. Hanno Lefmann Sommersemester 2005 Theoretische Informatik für Wirtschaftsinformatiker 1. Übung Aufgabe 1 Es gibt verschiedene Möglichkeiten, eine natürliche Zahl n zu kodieren. In der unären Kodierung hat man nur ein Alphabet mit einem Zeichen – sagen wir der 1 – zur Verfügung und die Zahl n wird durch n aufeinanderfolgende 1’en dargestellt, also z.B. ist 11111 die Kodierung der Zahl 5. Bei der binären Kodierung wird (ähnlich wie bei der geläufigeren dekadischen Schreibweise) die Zahl n geschrieben als n = ak 2k + ak−1 2k−1 + . . . + a1 21 + a0 20 , wobei ai ∈ {0, 1} für i = 0, . . . , k und k geeignet gewählt ist – also wird hier die Zahl 5 als 101 kodiert. (a) Was sind die Binärkodierungen der Zahlen 13, 19, 22 und 37? (b) Wie viele Bits werden zur Binärkodierung der Zahl n benötigt? Aufgabe 2 Sei f : N −→ R eine Funktion mit f (n) = an2 + bn + c, wobei a > 0 ist. Zeigen Sie, dass Konstanten n0 und C > 0 existieren, so dass für alle n ≥ n0 gilt f (n) ≤ C · n2 . Hinweise für die folgenden Aufgaben: Seien f, g: N −→ R+ 0 Funktionen. Dann bedeutet: • f = O(g), wenn ∃ c > 0, ∃ n0 , ∀ n ≥ n0 : f (n) ≤ c · g(n); f wächst nicht schneller als g“. ” • f = Ω(g), wenn g = O(f ) gilt; f wächst mindestens so schnell wie g“. ” Eine Funktion f : N → R+ 0 • heißt polynomiell beschränkt, falls es ein Polynom g gibt mit f = O(g). ε • wächst exponentiell, wenn es ein ε > 0 gibt mit f = Ω(2n ). [f wächst mindestens ε so schnell wie c · 2n für eine Konstante c > 0 .] Aufgabe 3 (a) Ist nlog n polynomiell beschränkt? (b) Wächst nlog n mindestens exponentiell? √ (c) Wächst 2 (d) Ist 3 nn n mindestens exponentiell? polynomiell beschränkt oder mindestens exponentiell? Begründen Sie Ihre Behauptungen. Aufgabe 4 (a) Sortieren Sie folgende Funktionen nach ihrem asymptotischen Verhalten. Dabei soll f ≺ g sein, wenn lim f (n)/g(n) = 0 ist. Kann man jede Menge von Funktionen n→∞ derart anordnen? f0 (n) f3 (n) f6 (n) f9 (n) f12 (n) f15 (n) = = = = = = n 5n2 (log n)2 (1, 618 . . .)n 3n n(log n)3 + n f1 (n) f4 (n) f7 (n) f10 (n) f13 (n) f16 (n) = = = = = = n log n 13/n log(log n) 1/(n log n) √ e√ n n f2 (n) f5 (n) f8 (n) f11 (n) f14 (n) = = = = = log n 4n4 + 3n 2n n2 2n n3 2n (b) Begründen Sie die von Ihnen behauptete Beziehung für die Paare (f8 , f11 ), (f2 , f16 ), (f12 , f13 ), (f6 , f7 ), (f0 , f1 ) und (f1 , f3 ). Hinweise auf bekannte Sätze aus der Mathematik genügen. (c) Finden Sie eine Funktion g(n), so dass weder g(n) = O(n2 ) noch g(n) = Ω(n2 ) gilt. Aufgabe 5 Betrachten Sie folgenden Algorithmus in Pseudocode: VAR i, j: index; x : item; 1: FOR i:=2 TO n DO 2: FOR j:=n DOWNTO i DO 3: IF A[j-1] > A[j] THEN 4: { x := A[j-1]; 5: A[j-1] := A[j]; 6: A[j] := x; } (a) Was macht dieser Algorithmus? (b) Analysieren Sie die Laufzeit dieses Algorithmus.