7. Übungsblatt zu Programmierung, WS 04/05 N

Werbung
IS
S
SA
R
7. Übungsblatt zu Programmierung, WS 04/05
S
UN
E R SIT
A
IV
A VIE N
Prof. Dr. Gert Smolka, Dipl.-Inform. Guido Tack
http://www.ps.uni-sb.de/courses/prog-ws04/
Lesen Sie im Skript: Kapitel 6.3-6.9 und 7.1-7.2
Aufgabe 7.1 Geben Sie die Elemente der Menge N∗ ∩ B2 ∩ (B + B) an.
Aufgabe 7.2 Geben Sie Graphen wie folgt an:
a) Einen Graphen der Größe 3 mit 3 Wurzeln.
b) Einen Graphen der Größe 3 mit einer Quelle und zwei Senken.
c) Einen zusammenhängenden Graphen der Größe 4 mit zwei Quellen und zwei
Senken.
d) Gibt es einen stark zusammenhängenden Graphen, der eine Quelle hat?
Aufgabe 7.3 Seien zwei Graphen G = (V , E) gegeben:
a) V = {1, 2, 3, 4, 5, 6}
E = {(1, 5), (2, 1), (2, 3), (2, 4), (3, 5), (6, 2), (6, 3)}
b) V = {1, 2, 3, 4, 5, 6, 7}
E = {(2, 7), (3, 1), (3, 6), (4, 2), (4, 3), (7, 5)}
Zeichnen Sie diese Graphen ohne überkreuzende Kanten. Beantworten Sie für jeden
der Graphen die folgenden Fragen:
•
•
•
•
•
•
•
Welche Größe und welche Tiefe hat der Graph?
Welche Quellen, Senken und Wurzeln hat der Graph?
Ist der Graph zyklisch? Wenn ja, geben Sie einen Zyklus an.
Geben sie einen einfachen Pfad maximaler Länge an.
Geben sie den vom Knoten 2 aus erreichbaren Teilgraphen an.
Ist der Graph zusammenhängend? Stark zusammenhängend?
Ist der Graph baumartig?
Aufgabe 7.4 Sei der folgende baumartige Graph gegeben:
1
2
4
3
5
8
6
9
13
7
10
11
14
2004–12–03
12
15
23:14
Dabei seien alle Kanten von oben nach unten gerichtet.
Geben Sie die Knotenmenge V und die Kantenmenge E des Graphen an.
Geben Sie die Größe und Tiefe des Graphen an.
Geben Sie die Wurzel des Graphen an.
Geben Sie die terminalen Knoten des Graphen an.
Geben Sie für den Knoten 14 einen Pfad an, der von der Wurzel zu diesem Knoten
führt. Gibt es mehrere solcher Pfade?
f) Zeichnen Sie alle Teilgraphen, die den Knoten 7 als Wurzel haben.
g) Geben Sie einen Teilgraphen an, der nicht baumartig ist.
a)
b)
c)
d)
e)
Aufgabe 7.5 Sei die Relation R = {(1, 2), (1, 3), (2, 4), (2, 5), (4, 1)} gegeben.
a)
b)
c)
d)
e)
f)
Zeichnen Sie die Graphdarstellung der Relation.
Geben Sie die Mengen Dom R, Ran R und Com R an.
Ist R funktional? Injektiv? Total auf Com R? Surjektiv auf Com R?
Welche Paare müssen Sie entfernen, damit R funktional und injektiv wird?
Geben Sie die Umkehrrelation R −1 an.
Geben Sie die Komposition R ◦ R an.
Aufgabe 7.6 Beschreiben Sie mithilfe der Lambda-Notation:
a)
b)
c)
d)
e)
f)
g)
Eine unendliche Funktion, die nicht injektiv ist.
Eine injektive Funktion Z → N, die surjektiv auf N ist.
Eine injektive Funktion Z → N, die nicht surjektiv auf N ist.
Eine endliche Funktion, die infinitär ist.
Die unendliche Folge 0, 2, 4, 6, . . . der gerade natürlichen Zahlen.
Die unendliche Folge 4, 9, 16, 25, . . . der Quadrate der Zahlen ab 2.
Die unendliche Folge 9, 25, 49, 81, . . . der Quadrate der ungeraden natürlichen
Zahlen ab 3.
Aufgabe 7.7 Seien die Funktionen f , g ∈ B2 → B wie folgt gegeben:
(x, y)
f (x, y)
g(x, y)
a)
b)
c)
d)
e)
(0, 0)
0
0
(0, 1)
0
1
(1, 0)
0
1
(1, 1)
1
1
Beschreiben Sie f und g mit der Lambda-Notation.
Beschreiben Sie f [(1, 1) := 0] mit der Lambda-Notation.
Ist f injektiv? Ist f surjektiv auf B?
Geben Sie die Elemente der Menge f an.
Geben Sie die Elemente der Menge f ◦ g an.
2004–12–03
23:14
Aufgabe 7.8 Seien zwei Relationen gegeben:
R1 = { ((x, y), (x 0 , y 0 )) ∈ (N × R)2 | x > x 0 ∧ y < y 0 }
R2 = { ((x, y), (x 0 , y 0 )) ∈ (Z × Z)2 | x + y > x 0 + y 0 ≥ −150 }
Zeigen Sie die Terminierung dieser Relationen, indem sie Einbettungen in die Menge
{ (x, y) ∈ N2 | x > y } angeben.
Aufgabe 7.9 Machen Sie sich mithilfe der folgenden Beispiele klar, dass sich aus
der Ergebnisfunktion einer Prozedur nicht ermitteln lässt, welchen Argument- und
Ergebnisbereich die beschreibende Prozedur hat und ob sie rekursiv ist.
a) Geben Sie eine Prozedur N → N an, die die Ergebnisfunktion ∅ hat.
b) Geben Sie eine rekursive Prozedur N → N an, die die Funktion λ n ∈ N. 0 berechnet.
Aufgabe 7.10 Geben Sie die Terminierungsmengen T0 , T1 , T2 für die Prozeduren fib
und fac 0 an. Geben Sie außerdem die Terminierungsmenge T0 für die Prozedur gcd
an. Die Deklarationen der Prozeduren finden Sie in Abbildung 7.1 im Skript.
Aufgabe 7.11 Geben Sie eine baum-rekursive Prozedur N → N an, die die Funktion
λ n ∈ N. 0 berechnet.
Aufgabe 7.12 Zu einer Prozedur p : X → Y kann man eine Prozedur X → T (X) angeben, die für terminierende Argumente x von p den Rekursionsbaum für x und p
liefert. Schreiben Sie eine solche Prozedur für fib. Realisieren Sie die Prozedur in
Standard ML.
Aufgabe 7.13 Zu einer linear-rekursiven Prozedur p : X → Y kann man eine Prozedur X → L(X) angeben, die für terminierende Argumente x von p die Rekursionsfolge für x und p liefert. Schreiben Sie eine solche Prozedur für euclid (Skript,
Abbildung 7.1). Realisieren Sie die Prozedur in Standard ML.
Aufgabe 7.14 Zu einer Prozedur p : X → Y kann man Prozeduren X → N angeben,
die für terminierende Argumente x von p die Größe und die Tiefe des Rekursionsbaums für x und p liefern. Schreiben Sie solche Prozeduren für gcd (Skript, Abbildung 7.1). Realisieren Sie die Prozeduren in Standard ML.
Aufgabe 7.15 Sei die folgende Prozedur gegeben:
p : Z2 → Z
p(x, y) = if x < y then p(x, y − 1) else
if x > y then p(x − 1, y) else x
2004–12–03
23:14
a)
b)
c)
d)
Geben Sie die Rekursionsfolge und die Rekursionstiefe für p und (−2, 1) an.
Geben Sie die Rekursionsfunktion und die Rekursionsrelation von p an.
Geben Sie eine natürliche Terminierungsfunktion für p an.
Beschreiben Sie die Ergebnisfunktion von p ohne Rekursion.
Aufgabe 7.16 Sei die folgende Prozedur gegeben:
p : N2 → N
p(n, x) = if n2 ≤ x then p(n + 1, x) else n − 1
a)
b)
c)
d)
Geben Sie die Rekursionsfolge und die Rekursionstiefe für p und (0, 4) an.
Geben Sie die Rekursionsfunktion und die Rekursionsrelation von p an.
Geben Sie eine natürliche Terminierungsfunktion für p an.
Beschreiben Sie die Ergebnisfunktion von p ohne Rekursion.
Aufgabe 7.17 Sei die folgende Prozedur gegeben:
p : N2 → N
p(x, y) = if x = 0 then y else
if y = 0 then x else
if x ≤ y then p(x − 1, y + 1) else p(x + 1, y − 1)
a)
b)
c)
d)
Geben Sie die Rekursionsfolge und die Rekursionstiefe für p und (3, 83) an.
Geben Sie die Rekursionsfunktion und die Rekursionsrelation von p an.
Geben Sie eine natürliche Terminierungsfunktion für p an.
Beschreiben Sie die Ergebnisfunktion von p ohne Rekursion.
2004–12–03
23:14
Herunterladen