0% fanden dieses Dokument nützlich (0 Abstimmungen)
106 Ansichten2 Seiten

Ub 1

Das Dokument enthält vier Aufgaben zu verschiedenen Themen der Computerorientierten Mathematik. Die erste Aufgabe behandelt Catalan-Zahlen und deren rekursive Berechnung. Die zweite Aufgabe beschäftigt sich mit der Berechnung der längsten Palindromsequenz in einer Zeichenkette mittels dynamischer Programmierung. Die dritte Aufgabe vergleicht Breitensuche und Tiefensuche an einem Beispielgraphen. Die vierte Aufgabe betrachtet rekursiv definierte Bäume.

Hochgeladen von

Rayen Ayari
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen
0% fanden dieses Dokument nützlich (0 Abstimmungen)
106 Ansichten2 Seiten

Ub 1

Das Dokument enthält vier Aufgaben zu verschiedenen Themen der Computerorientierten Mathematik. Die erste Aufgabe behandelt Catalan-Zahlen und deren rekursive Berechnung. Die zweite Aufgabe beschäftigt sich mit der Berechnung der längsten Palindromsequenz in einer Zeichenkette mittels dynamischer Programmierung. Die dritte Aufgabe vergleicht Breitensuche und Tiefensuche an einem Beispielgraphen. Die vierte Aufgabe betrachtet rekursiv definierte Bäume.

Hochgeladen von

Rayen Ayari
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PDF, TXT herunterladen oder online auf Scribd lesen

Technische Universität Berlin SS 2024

Fakultät II, Institut für Mathematik


Sekretariat MA 5–2, Dorothea Kiefer-Hoeft
Prof. Dr. Max Klimm
Dr. Tobias Hofmann, Martin Knaack, Marcel Wack.

1. Übungsblatt Computerorientierte Mathematik II


Abgabe: 25.04.2023 (bis 18:00 Uhr über ISIS)
Alle Antworten sind zu beweisen. Für Einzelabgaben gibt es keine Punkte.

1. Aufgabe (Catalan-Zahlen) (1 + 5 Punkte)


Die Catalan-Zahlen sind durch C0 := 1 und die rekursive Regel
n−1
X
Cn := Ck · Cn−1−k
k=0

für alle n ≥ 1 definiert.


(a) Beweisen Sie, dass für alle n ≥ 1 gilt,
n−1
X
2· 3k = 3n − 1.
k=0

(b) Schreiben Sie eine rekursive python oder julia-Funktion Catalan(n), die die n-te
Catalan-Zahl gemäß der Rekursionsregel berechnet. Zeigen Sie, dass für die Laufzeit
des Codes T (n) gilt,
T (n) ∈ Θ(3n ).

2. Aufgabe (Längste Palindromsequenz) (4 + 2 Punkte)


Im Folgenden sei Σ ein Alphabet. Gegeben ist eine Zeichenkette x = x1 x2 . . . xn ∈ Σ∗ .
Eine Palindromsequenz in x ist eine Teilfolge xi1 xi2 . . . xit mit 1 ≤ i1 < i2 < · · · <
it ≤ n und xij = xit−j+1 für alle j ∈ {1, . . . , t}. Beispielsweise gibt es in der Zeichenkette
dynamische␣Programmierung die Palindromsequenz nmrgrmn.
(a) Geben Sie einen Algorithmus mit Laufzeit O(n2 ), welcher die maximale Länge einer
Palindromsequenz in x berechnet. Begründen Sie, dass Ihr Algorithmus Laufzeit in
O(n2 ) besitzt.
(b) Erweitern Sie Ihren Algorithmus so, dass er auch eine längste Palindromsequenz in
x ausgibt. Die Laufzeit soll immer noch in O(n2 ) sein.
Hinweis: Schreiben Sie ein dynamisches Programm, das für 1 ≤ i ≤ j ≤ n die Länge L[i, j]
der längsten Palindromsequenz in xi xi+1 . . . xj berechnet.

1
3. Aufgabe (Breiten- und Tiefensuche) (3 + 3 Punkte)
In CoMa I wurde der folgende Algorithmus zur Durchmusterung eines Graphen behandelt.
Input: Graph G = (V, E, Ψ), Knoten r ∈ V
Output: R ⊆ V von r aus erreichbare Knoten, F ⊆ E, sodass (R, F, Ψ |F ) Baum (mit
Wurzel r)
R ← {r}, F ← ∅, Q ← {r}
while Q ̸= ∅ do
Sei v nächstes Element in Q
if ∃ e ∈ δ(v) mit w ∈ Ψ(e) \ R then
R ← R ∪ {w}, Q ← Q ∪ {w}, F ← F ∪ {e}
else
Q ← Q \ {v}
return R, F
Wird hierin Q als Queue realisiert, spricht man von Breitensuche (BFS), wird Q als Stack
realisiert, spricht man von Tiefensuche (DFS). Führen Sie BFS sowie DFS für den folgenden
Graphen mit Wurzelknoten r = A durch. Wählen Sie innerhalb der if-Abfrage jeweils das
alphabetisch kleinste w ∈ Ψ(e) \ R.

B
A G

C
D
H
F
E

(a) Notieren Sie für jede Iteration der while-Schleife den aktuellen Inhalt der Queue Q.
Geben Sie den sich ergebenden BFS-Baum an.
(b) Notieren Sie für jede Iteration der while-Schleife den aktuellen Inhalt des Stacks Q.
Geben Sie den sich ergebenden DFS-Baum an.

4. Aufgabe (Rekursive Bäume) (2 + 2 + 2 Punkte)


Für jede natürliche Zahl n definieren wir einen gewurzelten Baum T (n) rekursiv wie folgt:
T (0) und T (1) bestehen aus einem einzelnen Knoten 0 bzw. 1 , der gleichzeitig die
Wurzel ist. Für n ≥ 2 ist T (n) der Baum mit Wurzelknoten n , der zwei Kindknoten
besitzt, wobei die beiden Teilbäume, die am linken und rechten Kindknoten beginnen,
durch T (n − 1) bzw. T (n − 2) gegeben sind.
(a) Zeichnen Sie T (2), T (3) und T (4).
(b) Ein Blattknoten ist ein Knoten, der keinen Kindknoten besitzt. Wie viele Blattknoten
besitzt T (n)?
(c) Ein innerer Knoten ist ein Knoten, der kein Blatt ist. Wie viele innere Knoten besitzt
T (n)?

Das könnte Ihnen auch gefallen