Übungen zu Informatik I

Werbung
Ü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, 25916 und
10010110002 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.
Herunterladen