Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols...

39
Üungen

Transcript of Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols...

Page 1: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Üungen

Page 2: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 2.1 Informations-Kennwerte

1. Berechnen Sie1. Informationsgehalt

jedes Symbols2. Mittlerer Informations-

gehalt3. Mittlere Wortlänge (bei

einer Codierung von 8 bis für jedes Symbol)

4. Redundanz5. relative Redundanz

der deutschen Sprache (siehe Tabelle)

Buchstabe

Häufigkeit in %

Buchstabe

Häufigkeit in%

Buchstabe

Häufigkeit in %

a 6,51 j 0,27 s 7,27

b 1,89 k 1,21 t 6,15

c 3,06 l 3,44 u 4,35

d 5,08 m 2,53 v 0,67

e 17,40 n 9,78 w 1,89

f 1,66 o 2,51 x 0,03

g 3,01 p 0,79 y 0,04

h 4,76 q 0,02 z 1,13

i 7,55 r 7,00    

Page 3: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 2.2 Informations-Kennwerte

1. Wieviele Fragen benötigen Sie beim „Zahlenraten“1. um eine aus 100 Zahlen zu erraten2. um eine aus n Zahlen zu erraten

2. Eine Nachrichtenquelle sendet Zeichen aus dem AlphabetX = {a,b,c,d} mit den Wahrscheinlichkeiten p(a)=1/4, p(b)=p(c)=1/8

1. Berechnen Sie die Entropie der Quelle2. Wie groß ist der Informationsgehalt der Nachricht „abcd“3. Wie groß ist der mittlere Informationsgehalt der Nachricht „abcd“4. Wie groß ist der mittlere Informationsgehalt einer Nachricht mit 1000

Zeichen5. Wie groß ist der mittlere Informationsgehalt einer Nachricht mit 1000

Zeichen unter der Annahme, dass alle Zeichen gleich wahrscheinlich sind.

3. Berechnen Sie die Redundanz der englischen Sprache1. Gehen Sie davon aus, dass jedes Zeichen mit 8 bit codiert wird.2. Geben Sie eine Codierung an, die weniger redundant ist.

a 8,04b 1,54c 3,06d 3,99e 12,51f 2,3g 1,96h 5,49i 7,26j 0,16k 0,67l 4,14m 2,53n 7,09o 7,6p 2q 0,11r 6,12s 6,54t 9,25u 2,71v 0,99w 1,92x 0,19y 1,73z 0,1

Page 4: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 2.3 Huffmann / Hamming

1. Konstruieren Sie einen Huffmann-Code für die deutsche Sprache(Häufigkeitstabelle wie bei Übung 2.1)

1. Berechnen Sie die Redundanz Ihres Codes2. Vergleichen Sie Ihren Code mit dem Morsecode

• Der Morsecode ist ein tertiärer Code (Punkt, Strich, Pause)• Gehen Sie davon aus, dass diese Zeichen nochmals mit je 2 bit codiert sind

3. Welcher Code ist redundanter ?2. Bestimmen Sie die Hamming-Distanz der nach der Hamming-Methode

kodierten Codewörter.1. Betrachten Sie dabei zunächst nur die Codewörter für 0000 bis 11112. Welche Bitfehler sind erkennbar ?3. Welche Bitfehler sind korrigierbar ?

3. Codieren Sie „1000“ mit Hilfe der Hamming-Methode1. Kippen sie jedes Bit je einmal und bestimmen sie das gekippte Bit2. Was passiert, wenn zwei Bits gekippt sind - verdeutlichen Sie dies anhand

eines Beispiels.

Page 5: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 3.1 Zahlensysteme

1. Die Duodezimalindianer haben zwölf Finger1. Berechnen Sie nach dem Zahlensystem der Duodezimalindianer die

wichtigsten Werte des täglichen Lebens:1. 300g Pizza2. Eine Flasche Bier (0,5 bzw. 0,33 Liter)3. ALDI 2.95 €

2. Konvertieren Sie die obigen Werte auch in Bin, Hex und Okt2. Grundrechenarten (verwenden Sie keinen Rechner)

1. Berechnen Sie 568210 / 1910

2. Konvertieren Sie 568210 und 1910 ins Binärsystem

3. Dividieren Sie die Binärdarstellungen der beiden Zahlen4. Machen Sie die Gegenprobe im Binärsystem

3. Konvertieren Sie 0,110 ins Binärsystem

4. Was bedeutet:44 65 72 20 42 61 6C 6C 20 69 73 74 20 72 75 6E 64 2E

Page 6: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 3.2 Gebrochene Zahlen

1. Konvertieren Sie 0,1 mit der Restwertmethode2. Addieren Sie paarweise alle Zahlen von -3 bis +4 (also 28 Additionen),

verwenden Sie dabei die Darstellung negativer Zahlen im Zweierkomplement.

3. (optional) Programmieren Sie in PHP4/HTML-Forms einen Konverter zur Konvertierung ganzer und gebrochener Zahlen zwischen beliebigen Zahlensystem und zur Darstellung im IEEE 754 float und double Format.

4. Stellen Sie 1. als IEEE 754 float-Zahl dar2. als IEEE 754 double-Zahl dar

5. Geben Sie im Binärsystem und Dezimalsystem1. den größt- bzw. kleinst-möglichen positiven bzw. negativen Wert einer

float-Zahl an

Page 7: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 3.3 IEEE 754

1. Betrachten sie das Programm konvd auf der GDI-Website(www.prof-kneisel.de -> Lehre -> GDI (Tabelle: Sonstiges))

1. Bestimmen Sie (durch Ausprobieren)1. Vorzeichenbit,2. Exponentenbits,3. Mantissenbits4. Bias

Für die Datentypena. Extendedb. Doublec. Currencyd. Single

Bemerkung:Die im Programm konvd dargestellten Werte entsprechen den Binärrepräsentationen von Borlands Delphi-Datentypen.

Page 8: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 4.1 Strukturierte Datentypen

1. Beschreiben Sie Gemeinsamkeiten und Unterschiede von „Datenstruktur“, „Datentyp“ und „Variable“.

2. Was sind die Vor- und Nachteile von Arrays gegenüber verketteten Listen

3. Definieren Sie einen Datentyp für das Objekt „Schachspiel“. Berücksichtigen Sie dabei:

1. Beide Namen der Spieler2. Alle Züge3. Den Gewinner

4. Betrachten Sie den Stundenplan auf meiner Homepage1. Skizzieren Sie einen Datentyp für das Objekt „Stundenpläne“2. Welchen Speicherplatz benötigt eine Variable dieses Typs ?3. An welchen Stellen sehen Sie Alternativen zu Ihrer Typdefinition ?

Page 9: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 4.2 Abstrakte Datentypem

1. Definieren Sie den Datentyp für eine1. einfach verkettete Liste (die Datenwerte seien vom Typ: integer)2. doppelt verkette Liste (die Datenwerte seien vom Typ: integer)

2. Definieren Sie den Datentyp für ein beliebiges Netz - siehe Bild(der Datenwert jedes Knotens sei vom Typ: integer)

<int>

<int>

<int>

<int>

<int>

<int>

<int>

<int>

<int>

Page 10: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 5.1 Spiel des Lebens

1. Überlegen Sie sich Rahmenbedingungen für das Spiel des Lebens (Anhang B)

2. Formalisieren Sie dieses Problem3. Stellen sie einen umgangssprachlichen Lösungsansatz auf4. Formalisieren Sie den Lösungsansatz als Algorithmus5. Spielen Sie den Algorithmus anhand eines Beispieles durch6. Bewerten Sie den Algorithmus bezüglich seine Laufzeit und seines

Platzbedarfes7. optional: Programmieren Sie dieses Spiel

Page 11: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 5.2 Abweisende Schleife

1. Notieren Sie das Beispiel der abweisenden Schleife als1. Flussdiagramm2. Struktogramm

2. Formulieren Sie die „while“-Schleife dieses Beispiels als „repeat“-Schleife.

3. Erweitern Sie dieses Beispiel so, dass alle Zahlen korrekt verarbeitet werden.

4. Formulieren Sie das Beispiel nur mit Hilfe von Sprüngen.(Also ohne die Strukturierungsmethode „Schleife“ bzw. ein-/mehrfache Auswahl)

Page 12: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 5.3 Schleifen

1. Konstruieren Sie und wandeln Sie um ...1. eine „While“-Schleife in eine „Repeat“-Schliefe2. eine „Repeat“-Schleife in eine „While“-Schleife3. Formulieren Sie Ihr Vorgehen für allgemeine „While“- und „Repeat“-

Schleifen, mit Bedingungen B und Aktionen.A.2. Konstruieren Sie eine „While“-Schleife

1. Wandeln Sie diese in einen Algorithmus mit Sprung-Befehlen um.2. Formulieren Sie Ihr Vorgehen für allgemeine „While“-Schleifen, mit

Bedingungen B und Aktionen.A.3. Konstruieren Sie eine „Repeat“-Schleife.

1. Wandeln Sie diese in einen Algorithmus mit Sprung-Befehlen um.2. Formulieren Sie Ihr Vorgehen für allgemeine „Repeat“-Schleifen, mit

Bedingungen B und Aktionen.A.

Page 13: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 5.4 Rekursion

1. Programmieren Sie die Fakultätsfunktion1. Rekursiv2. Iterativ3. Ermitteln Sie die Laufzeiten beider Varianten in Abhängigkeit von n und

stellen Sie diese tabellarisch dar.2. Optional:

1. Programmieren Sie für das „Weg des Springers“-Problem ein Programm mit Backtracking.

2. Entwickeln Sie unterschiedliche Heuristiken zur Realisierung des „waehleKandidat“-Blockes.

3. Zeigen Sie, durch Berechnung der ersten n Lösungen, welche Heuristik die erfolgreichste ist.

Page 14: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 5.5 Acht Damen Problem

Das acht Damen Problem: Acht Damen sind so auf einem Schachbrett aufzustellen, dass keine

Dame eine andere bedroht: Eine mögliche Lösung:

Formulieren Sie einen rekursiven Algorithmus zur Lösung des Acht-Damen Problems.

Programmieren Sie den Algorithmus

Page 15: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 6.1 Turing-Maschine

1. Machen Sie sich mit der Funktionsweise des „Busy Beaver“-Programms vertraut

Vollziehen sie die 11 Schritte der ersten Turing-Tebelle.2. Versuchen Sie sich selbst am Turing Simulator der IGS (Link auf meiner

Homepage)3. Entwerfen Sie eine Turing-Maschine zur Multiplikation zweier

natürlicher Zahlen.

Page 16: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 6.2 Einfache Verifikation

Gegeben ist folgender Algorithmus{a<0, b>0, c>0} // Vorbedingung P(a,b,c)a=b;d=b-a;if (c == 0) then

d=5;else d=d+1;1. Geben Sie eine Nachbedingung Q(d) für die Variable d an2. Beweisen Sie dass sich durch den Algorithmus aus P(a,b,c) diese

Nachbedingung Q(d) ableiten lässt3. Schreiben Sie einen zweiten Algorithmus, der ebenfalls die

Nachbedingung Q(d) aus P(a,b,c) ableiten kann4. Verifizieren Sie Ihren Algorithmus

Page 17: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 6.3 Denksportaufgabe

1. Gegeben sei folgendes VerfahrenIn einem Topf seien s schwarze und w weiße Kugeln - insgesamt mindestens eine. Solange mindestens zwei Kugeln im Topf sind, nimm zwei beliebige Kugeln heraus. Falls Sie gleiche Farbe haben, wirf beide weg und lege eine neue schwarze Kugel in den Topf. Falls sie verschiedene Farben haben, wirf die schwarze weg und lege die weiße zurück in den Topf.

1. Welche Farbe hat die letzte Kugel2. Welche Aussage - die einen Hinweis auf die Antwort gibt - gilt vor, in und

nach der Schleife (Invariante)3. Terminiert die Schleife ? Begründen Sie ihre Antwort.

Page 18: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 6.4 Invariante

1. Betrachten Sie nochmals das Verfahren aus der vorgegangenen Übung:

In einem Topf seien s schwarze und w weiße Kugeln - insgesamt mindestens eine. Solange mindestens zwei Kugeln im Topf sind, nimm zwei beliebige Kugeln heraus. Falls Sie gleiche Farbe haben, wirf beide weg und lege eine neue schwarze Kugel in den Topf. Falls sie verschiedene Farben haben, wirf die schwarze weg und lege die weiße zurück in den Topf.

1. Beschreiben Sie das Verfahren als Algorithmus1. Das „Nehmen“ dürfen Sie als Block voraussetzen.

1. Entwerfen Sie den Kopf dieses Blocks,2. Beschreiben Sie seine Parameter3. beschreiben Sie sein Verhalten in Form einer Vor- und Nachbedingung

2. Bestimmen Sie die Invariante3. Beweisen Sie die Korrektheit Ihrer Nachbedingung

Page 19: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 6.5 Vollständige Verifikation

1. gegeben ist der folgende Algorithmus zum schnellen Potenzieren (Legendre Algorithmus)

// Vorbedingung P(V): a>0 b0x = a; y = b; z = 0; while y > 0 { if odd(y) then z = z*x; y = y div 2; // Ganzzahldivision x = x*x;}

1. Was ist die Nachbedingung dieses Algorithmus2. Bestimmen die die Schleifeninvariante3. Beweisen Sie die Korrektheit de Legendre Algorithmus

Page 20: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 6.6 Schranken

1. Angenommen, Ihr Algorithmus habe einen Aufwand vong(n) = 5n3 + n + 1000 für alle n

a) Geben sie eine obere Schranke O(g(n)) an.b) Beweisen Sie, dass ihre Schranke tatsächlich eine obere Schranke ist.c) Konstruieren Sie einen Graphen fü die beiden Funktionen g(n) O(g(n) so,

dass der Schnittpunkt deutlich wird.d) Geben Sie eine untere Schranke an

2. Sie haben zusätzlich einen Algorithmus mit O(2n) Aufwand. Vergleichen Sie diesen Algorithmus mit dem Algorithmus aus 1.

a) Welches ist der „schnellere“ Algorithmus ?b) Begünden Sie Ihre Antwort quantitativ

Page 21: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 6.7 O-Notation

1. gegeben seien folgende Werte:1,3,4,8,9,15,17,25,28,29,31,36,41,45

a) Zeichnen Sie einen sortierten Baum minimaler Tiefe, der mit den gegeben Werten belegt ist.

b) Schreiben Sie einen Algorithmus, der den Baum aufspannt(als Wiederholungs-Übung von Zeigern)

c) Gegeben ist der Suchalgorithmus aus „Häufige O-Ausdrücke: O(log n)“. Geben Sie für jeden Wert an, wie oft der Block durchlaufen wird

2. Formulieren Sie einen iterativen Algorithmus mit O(n4) Geben Sie eine kurze rechnerische Begründung für Ihre Antwort

Page 22: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 6.8 Aufwand

1. Gegeben ist folgender Algorithmus:do (list:*liste) {i:integer;for i=1 to no_of_elements(list) { remove_last_element(list); do (list) // call list with one element less}

a) Geben Sie den Aufwand an.b) Belegen Sie Ihre Antwort rechnerisch

2. Gegeben ist folgender Algorithmusfor i=1 to n { j=1; while (j<i) { j = j+2; }}

a) Geben Sie den Aufwand an.b) Belegen Sie Ihre Antwort rechnerisch

Page 23: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 7.1 Syntax und Semantik

1. Geben Sie Beispiele füra) lexikalische Strukturelementeb) syntaktische Strukturelemente

der Programmiersprache C++ an2. Formulieren Sie die Semantik

a) einer while-Schleifeb) eines Unterprogrammaufrufes

in C++3. recherchieren Sie nach weiteren Programmiersprachen

Page 24: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Übung 7.2 Reguläre Ausdrücke

1. Geben Sie reguläre Ausdrücke füra) Integerliteraleb) Die Schlüsselwort: while, function, if

in C++, jeweils in „klassischer“ und in UNIX-Notation an2. Geben Sie einen regulären Ausdruck zu folgenden Sprachen an:

a) Alle Folgen von Großbuchstaben, die jeden Vokal genau einmal in alphabetischer Reihenfolge enthält:Bsp.: SDFKJHZZTADGFPMNBEHGQIQWGFMNOLKHYXUQSKJH

b) Alle Dualziffernfolgen, die „001“ nicht als Teilfolge enthaltenGegenbsp.: 10011100101010000

3. Welche Sprachen sind durch die folgenden regulären Ausdrücke definiert ?a) (0?|1*)*b) (0|1)*0(0|1)(0|1)c) /\*((\*[^/])|[\*])*\*/

Page 25: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Lösung 6.1.1 Turing-Maschine

Vollziehen sie die 11 Schritte der ersten Turing-Tebelle.

1,_ 2,1,>1,1 3,1,<2,_ 3,1,>2,1 H,1,>3,_ 1,1,<3,1 2,_,<4,_ H,_,>4,1 H,_,>

Ausgangszustand,Zeichen Folgezustand,schreibeZeichen,Aktion

123456789

1011

2313231312H

State

Page 26: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Lösung 6.1.2 Turing-Maschine

Eingabe der initialen Bandinschrift

Eingabe der Turing-Tabelle

Zustand x ZeichenFolgezustand xZeichen x Aktion

Beispiel:1,_ 1,_,>

Page 27: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Lösung 6.1.3 Turing-Maschine

Aufgabenstellung Entwerfen Sie eine Turing-Maschine zur Multiplikation zweier natürlicher

Zahlen. Spezifikation

Eingabespezifikation Die Zahlen werden durch die entsprechende Anzahl von ‚1‘ am Band

dargestellt Zwischen den Zahlen befindet sich ein ‚x‘ am Band Hinter der letzten Zahl ist ein =- Zeichen am Band Das restliche Band ist mit ‚0‘ beschrieben. Der Schreib/Lesekopf befindet sich links von der 1. Zahl.

Ausgabespezifikation Das Ergebnis ist hinter dem =, durch eine entsprechende Anzahl von ‚1‘

darzustellen. Beispiel:

Die zwei Zahlen 3 und 4 sind mittels eines Turing-Programmes zu multiplizieren

Page 28: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Lösung 6.1.3 Turing-Maschine

Idee:1. Kopiere alles vor

dem =(den 2.Multiplikator)ans Ende

2. Mache dies für jede 1 vor dem X(den 1.Multiplikator)

Siehe Anhang C

SucheStart 0 SucheStart 0 RSucheStart 1 SucheZahl2 0 RSucheStart X EndZustand X LSucheZahl2 1 SucheZahl2 1 RSucheZahl2 X Zahl2Start X RZahl2Start 1 GeheEnde 0 RZahl2Start = Mach1Aus0 = LGeheEnde 1 GeheEnde 1 RGeheEnde = SucheNull = RSucheNull 1 SucheNull 1 RSucheNull 0 HolNaechsten1 1 LHolNaechsten1 1 HolNaechsten1 1 LHolNaechsten1 = HolNaechsten1 = LHolNaechsten1 0 Zahl2Start 0 RMach1Aus0 0 Mach1Aus0 1 LMach1Aus0 X Zahl1Start X LZahl1Start 1 Zahl1Start 1 LZahl1Start 0 SucheStart 0 R

Page 29: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Lösung 6.2 Einfache Verifikation

Gegeben ist folgender Algorithmus{a<0, b>0, c>0}a=b;{a=b, b>0, c>0}d=b-a;{d=b-a, a=b, b>0, c>0} {d=0, b>0, c>0}if (c == 0) then {d=0, b>0, c>0, c=0} d=5; {d=5, b>0, falsch} {d=1} // aus falsch lässt sich alles folgernelse {d=0, b>0, c>0, c<>0} {d+1=1, b>0, c>0} d=d+1; {d=1, b>0, c>0}{d=1, b>0, c>0} {d=1}

Page 30: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Lösung 6.3 Denksportaufgabe

1. Denksportaufgabe1. Welche Farbe hat die letzte Kugel ?

Die Farbe der letzten Kugel ist abhängig von der Anzahl der weißen Kugeln:Ist die Anzahl gerade, so ist die letzte Kugel schwarzIst die Anzahl ungerade, so ist die letzte Kugel weiß

2. Welche Aussage gilt vor, in und nach der Schleife (Invariante)Ist die Anzahl der weißen Kugeln gerade, so bleibt sie geradeIst die Anzahl der weißen Kugel ungerade, so bleibt sie ungeradeEs werden entweder 2 weiße Kugeln entfernt oder keine.

3. Terminiert die Schleife ? Begründen Sie ihre Antwort.JA. Die Anzahl der Kugeln vermindert sich bei jedem Zug um genau eine (nach Algorithmus: 2 nehmen, eine geben). Beim Erreichen von 2 Kugeln wird die Schleife noch einmal durchlaufen und terminiert mit einer Kugel.

Page 31: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Lösung 6.4 Invariante

{s+w >= 1}x=s; y=w;{x=s, y=w, x+y 1}{INV: (odd(w): odd(y)) (even(w): even(y) x+y1) }while (x+y>1){ {INV x+y>1} // Vorbedingung für „take“: x+y>1 take(a,b) // IN: a no. of black, b no of white (drawn) {a+b=2, a,b0} // = Nachbedingung für „take“ switch a: { // a = no of black bullets drawn case 0: {x=x+1; y=y-2}; {INV} // add black, remove two w. case 1; (x=x-1); {INV} // remove black case 2; (x=x-1); {INV} // remove black } {INV}}{INV x+y>1 (odd(w):odd(y)) (even(w):even(y) x+y1) x+y1 (odd(w):odd(y)) (even(w):even(y) x+y=1) }

Page 32: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Lösung 6.5 Vollständige Verifikation

// Vorbedingung P(V): a>0 b0x = a; y = b; z = 1; // x=a y=b z=1 x>0 b0{ INV: zxy=ab y0 }while y > 0 { {INV y>0 (z*x/x)*xy=ab y>0 } if odd(y) then z = z*x; { odd(y) : z/x*xy=ab y>0 z*xy-1=ab y>0 } // else { even(y): z*xy =ab y>0 } { odd(y) : z*x(2(y div 2)+1)-1=ab 2(y div 2)+1>0 even(y): z*x2(y div 2) =ab 2(y div 2) >0 } y = y div 2; // Ganzzahldivision { odd(y) : z*x(2y+1)-1=ab 2y+1>0 z*x2y=ab 2y0 even(y): z*x2y =ab 2y >0 z*x2y=ab 2y>0 } x = x*x; { (odd(y): z*xy=ab 2y0) (even(y): z*xy=ab 2y>0) z*xy=ab (odd(y):2y0) (even(y):2y0) z*xy=ab y0 }} { INV (y0) (z*xy=a*b) (y=0) z*x0=ab = Q(V) }

Page 33: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Lösung 6.6.1 Schranken

1. g(n) = 5n3 + n + 1000 für alle na) Behauptung: Die Laufzeit von g(n) ist O(n3), also f(n)=n3, b) Beweis:

Es muss Konstanten c und n0 geben, so dass gilt5n3 + n + 1000 c n2, für alle n > n0

setze z.B. n0=10 und c=6, dann gilt:n3 > n + 1000 gilt für n11, n 5n3 + n + 1000 5n3 + 100n 5n3+n3 = 6n3

c)

d) z.B.: 5n3

0

2000

4000

6000

8000

10000

12000

14000

1 2 3 4 5 6 7 8 9 10 11 12 13

n3

Page 34: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Lösung 6.6.2 Schranken

2. Sie haben zusätzlich einen Algorithmus mit O(2n) Aufwand. Vergleichen Sie diesen Algorithmus mit dem Algorithmus aus 1.

a) Welches ist der „schnellere“ Algorithmus ?Für kleine n (n<14) ist der Algorithmus mit O(2n) der schnellere, ansonsten der mit g(n) = 5n3 + n + 1000

b) Begründen Sie Ihre Antwort quantitativ

0

5000

10000

15000

20000

25000

30000

35000

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

2n

Page 35: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Lösung 6.7.1 O-Notation

1. gegeben seien folgende Werte: 1,3,4,8,9,15,17,25,28,29,31,36,41,45

17

31

28 41

45

8

93

4 2925151 36

node: array[1..14] of knoten;// Normalerweise wird der Speicher dynamisch allokiertnode[1].value = 17; node[12].value = 41;node[1].left = &node[2]; node[12].left = &node[13];node[1].right = &node[3]; node[12].right = &node[14];node[2].value = 8; node[13].value = 36;node[2].left = &node[4]; node[13].left = nil;node[2].right = &node[5]; node[13].right = nil;node[3].value = 31; node[14].value = 45;node[3].left = &node[6]; node[14].left = nil;node[3].right = &node[7]; node[14].right = nil;...

Anzahl Aufrufe 1

2

3

4

Page 36: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Lösung 6.7.2 O-Notation

2. Formulieren Sie einen iterativen Algorithmus mit O(n4)for (i=1 to n) { for (j=1 to n) { for (k=1 to n) { for (l=1 to k) { // Statements } } }}Aufwand: nn(n(n+1))/2 = n2(n2/2+n/2)=n4/2 + n3/2 Laufzeit O(n4)

Page 37: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Lösung 6.8 Aufwand

1. do (list:*liste) {i:integer;for i=1 to no_of_elements(list) { remove_last_element(list); do (list) // call list with one element less}Zeitbedarf: Tn = n Tn-1 (Tn = Zeitbedarf für n, n2, T1=1)Tn =nTn-1 = n (n-1) Tn-2 = n (n-1) (n-2) Tn-3 = ... = 1 2 3 ... n Tn = n! Laufzeit O(n!) (wirklich viel! Algorithmus inpraktikabel)

2. for i=1 to n { j=1; while (j<i) { j = j+2; }}Zeitbedarf: Betrachte Anzahl der Zuweisungen für alle i<n:1 + 2 + 2 + 3 + 3 + 4 + 4 + .... + n/2 + n/2 =2 (n/2 (n/2+1))/2 - 1 = n/2 (n/2 +1) -1 = n2/4 + n/2 - 1 Laufzeit O(n2)

Page 38: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Lösung 7.1 Syntax und Semantik

1. Geben Sie Beispiele füra) lexikalische Strukturelemente: Bezeichner, Literale, Schlüsselworte, ...b) syntaktische Strukturelemente: Alle Elemente aus „Algorithmenentwurf“

der Programmiersprache C++ an2. Formulieren Sie die Semantik

a) einer while-Schleife: siehe Schleief mit vorausgehender Prüfung

b) eines Unterprogrammaufrufes siehe „Block“3. recherchieren Sie nach weiteren Programmiersprachen

Algol 60, Algol 68, Forth, PL/1, Fortran, Smalltalk, Simula 67, SETL, Snobol, Cobol, Pascal, Turbo-Pascal, DELPHI, Concurrent Pascal, SPSS, CLU, Alphard, SDL, Oberon, Oberon-2, Object Cobol, Ada, APL, CDL 2, Ada 95, Mesa, Modula-2, Chill, BCPL, C, Objective-C, Modula-3, C++, ,Assemblersprachen, Prolog, Prolog II, Eiffel, Beta, Opal, CS,P Hope, Miranda, Lisp, Common Lisp, PHP, Perl, Scheme, Haskell, Standard ML, Clipper, Basic, Visual Basic, Java, JavaScript, SQL, Late,x Postscript, HTML, UML, Z, Act-One, VDM, awk, LEX, YACC, Maschinensprachen, RPG, Occam, Linda, T Lotus, OPS-5, ...

werden Sie zu Meta-Programmierern und -Programiererinnen

Page 39: Üungen. Übung 2.1Informations-Kennwerte 1.Berechnen Sie 1.Informationsgehalt jedes Symbols 2.Mittlerer Informations- gehalt 3.Mittlere Wortlänge (bei.

Lösung 7.2 Reguläre Ausdrücke

1. Geben Sie reguläre Ausdrücke füra) Integerliterale: [1-9][0-9]* bzw. (1|2|3|4|5|6|7|8|9)(o|1|2|3|4|5|6|7|

8|9)*b) while, function, if while usw. bzw. ‘w‘‘h‘‘i‘‘l‘‘e‘ usw.

2. Geben Sie einen regulären Ausdruck zu folgenden Sprachen an:a) Alle Folgen von Großbuchstaben, die jeden Vokal genau einmal in

alphabetischer Reihenfolge enthält:KONS = [B-DF-HJ-NP-TV-Z]{KONS}A{KONS}E{KONS}I{KONS}O{KONS}U{KONS}

b) Alle Dualziffernfolgen, die „001“ nicht als Teilfolge enthalten(0?1+)*0*

2. Welche Sprachen sind durch die folgenden regulären Ausdrücke definiert ?a) (0?|1*)* alle Binärzahlen, denn (0|1) ist Teilmenge von (0?|

1*)b) (0|1)*0(0|1)(0|1) alle Binärzahlfolgen, bei denen die drittletzte Ziffer

existiert und 0 istc) /\*((\*[^/])|[\*])*\*/ „wohlgeformte“ C-Kommentare