Übungen zu Informatik-Grundlagen WS 2015/2016 Blatt 8 Aufgabe 1: 1. Wandeln Sie die Dezimalzahl 810 direkt (d. h. ohne Umweg über ein anderes Zahlensystem) ins Hexadezimalsystem um. 2. Ermitteln Sie mit möglichst wenig Rechenaufwand, welche von den drei Zahlen 600, 25916 und 10010110002 die größte ist. 3. Beschreiben Sie das Aussehen aller möglichen Hexadezimalzahlen, die eine Zweierpotenz darstellen. Begründen Sie Ihre Antwort. 4. Stellen Sie die Dezimalzahl 0,6 möglichst genau mit drei binären Nachkommastellen dar. Wie groß ist die Abweichung der Binärzahl vom exakten Wert 0,6? Aufgabe 2: 1. Ermitteln Sie für den Ausdruck (a b) (b c) die KDN. 2. Vereinfachen Sie durch schrittweise algebraische Umformungen den Ausdruck a c a c b c . Aufgabe 3: Der Aufwand T(n) einer Klasse von Algorithmen betrage in Elementaroperationen , n 1 a T(n) , 7 T(n/2) b , sonst wobei n 2 k eine Zweierpotenz ist und a und b nichtnegative ganze Zahlen sind. 1. Berechnen Sie für b = 1 den Wert von T(8). 2. Stellen Sie für b = 0 durch wiederholtes Anwenden der Rekursion eine nichtrekursive Formel für T(n) in Abhängigkeit von k auf. 3. Begründen Sie anhand des Ergebnisses aus 2., dass der asymptotische Aufwand für b = 0 besser als O(n 3 ) ist. 4. Geben Sie für b = 0 eine nichtrekursive Formel für T(n) in Abhängigkeit von n an. Aufgabe 4: Ein Integer-Array enthalte n verschiedene Elemente. Es soll mittels Quicksort aufsteigend sortiert werden. Jemand schlägt vor, als Pivot-Element in jedem Schritt nicht das mittlere Element eines Teilfeldes zu nehmen, sondern das, das beim Größenvergleich zwischen erstem, mittlerem und letztem Element das zweitgrößte ist. 1. Geben Sie Pseudocode für eine Funktion pivot (int a[m]) an, die für ein Feld mit m > 2 Elementen das Pivot-Element gemäß dieser Methode bestimmt. 2. Welche Idee könnte hinter diesem Vorschlag stecken? Aufgabe 5: Unter der Hamming-Distanz d(u,v) zweier binärer n-Tupel u und v versteht man die Anzahl der Stellen, an denen sich u und v unterscheiden. So ist etwa d((01101),(00111)) = 2 (Unterschied an 2. und 4. Stelle). In einem 2-dimensionalen Integer-Array a[m,n] befinden sich nur die Zahlen 0 und 1. Die Zeilen werden als binäre n-Tupel interpretiert. Geben Sie Pseudocode für eine Funktion dmin (int a[m,n]) an, die die minimale Hamming-Distanz zwischen den Tupeln im Array bestimmt und geben Sie den asymptotischen Aufwand Ihres Algorithmus an.