Algorithmen und Datenstrukturen“ Lösung zum

Werbung
TU Ilmenau, Fakultät für Informatik und Automatisierung
FG Komplexitätstheorie und Effiziente Algorithmen
Univ.-Prof. Dr. Martin Dietzfelbinger
Dipl.-Ing. Christopher Mattern, Dipl.-Inf. Michael Rink
http://www.tu-ilmenau.de/iti/lehre/lehre-ss-2012/aud/
Algorithmen und Datenstrukturen“
”
Lösung zum Übungsblatt 0, SS 2012
Besprechung: 14. Kalenderwoche
Lösung von Aufgabe 1 (Grundlegende Formeln)
(a)
1. Sei n gerade.
n
X
i=
i=0
n/2
X
i+
i=1
n/2
X
(n − i + 1) =
i=1
n/2
X
(n + 1) =
i=1
n · (n + 1)
2
2. Sei n ungerade.
n
X
i=
i=0
n+1
X
i − (n + 1)
nach 1.
=
i=0
(n + 1) · (n + 2) 2 · (n + 1)
n · (n + 1)
−
=
2
2
2
(b) vollständige Induktion
n
P
Wir betrachten die Aussage A(n):
i2 =
i=0
n·(n+1)·(2·n+1)
.
6
I.A. z.z. A(0)
0
X
i2 = 0 =
i=0
0 · (0 + 1) · (2 · 0 + 1)
6
I.S. z.z. A(n − 1) ⇒ A(n) für alle n > 0
n
X
i2 =
i=0
n−1
X
I.V.
i2 + n2 =
i=0
(n − 1) · n · (2 · n − 1) 6 · n2
+
6
6
n · [(n + 1 − 2) · (2 · n + 1 − 2) + 6 · n]
n · [(n + 1) · (2 · n + 1) − 2 · (n + 1) − 2 · (2 · n − 1) + 6 · n]
=
=
6
6
n · (n + 1) · (2 · n + 1)
=
6
(c) Sei f (n) =
1. Sei q 6= 0.
n
P
qi.
i=0
n
n+1
n
X
1 X i+1 1 X i 1
f (n) = ·
q
= ·
q = · −q 0 + q n+1 +
qi
q
q
q
i=0
i=1
i=0
n+1
n+1
1
q
− 1 q6=1
q
−1
⇔f (n) · 1 −
=
⇔ f (n) =
q
q
q−1
!
=
1
q n+1 − 1
· f (n) +
q
q
2
Algorithmen und Datenstrukturen“
”
Lösung zum Übungsblatt 0, SS 2012
2. Sei q = 0.
f (n) =
n
X
0i = 00 + 0 = 1 =
i=0
0n+1 − 1
0−1
(d)
∞
X
i=0
q i = lim
n→∞
n
X
−1
q n+1 |q|<1 −1
1
q n+1 − 1
=
=
+ lim
+0=
n→∞ q − 1
q − 1 n→∞ q − 1
q−1
1−q
q i = lim
i=0
Lösung von Aufgabe 2 (Schranken für monoton fallende Funktionen)
(a),(b),(c): Ansatz
b−a−1
X Z a+1+i
b
Z
f (x) dx =
a
Wegen Monotonie gilt:
Es folgt:
R a+1+i
a+i
Z
i=0
f (x) dx ≤ f (a + i) · 1 und
b
f (x) dx ≥
(a)
b−a−1
X
a
Z
R a+1+i
a+i
f (a + 1 + i) =
i=0
b
f (x) dx ≤
(b)
f (x) dx
a+i
b−a−1
X
a
f (x) dx ≥ f (a + 1 + i) · 1.
b
X
f (i)
i=a+1
f (a + i) =
i=0
b−1
X
f (i) .
i=a
Damit ergeben sich die Schranken:
Z b+1
Z b
b
b
X
(b) X
(a)
(c)
f (x) dx ≤
f (i) = f (a) +
f (i) ≤ f (a) +
f (x) dx .
a
(d)
i=a
i=a+1
a
Rn
(i) Wir betrachten zunächst das bestimmte Integral 1 x1 dx.
Z n
1
dx = [ln(x) + C]n1 = ln(n) − 0
x
1
Mit (c) ergibt sich:
ln(n + 1) ≤
n
X
1
i=1
i
≤ 1 + ln(n)
P
Bemerkung: Hn = ni=1 1i ist die n-te harmonische
Zahl, Partialsumme der (unendliP
1
chen, divergenten) harmonischen Reihe H = ∞
.
i=1
R ni
(ii) Wir betrachten zunächst das bestimmte Integral 1 1/x2 dx.
n
Z n
1 −1
1
x−2 dx =
x + C = − − (−1)
−1
n
1
1
R n −2
1
Es folgt: limn→∞ 1 x dx = limn→∞ 1 − n = 1. Mit (c) ergibt sich:
1≤
∞
X
1
≤1+1=2
i2
i=1
Bemerkung: Der exakte Wert ist
π2
6
≈ 1.645. (Basler Problem)
Algorithmen und Datenstrukturen“
”
Lösung zum Übungsblatt 0, SS 2012
3
Lösung von Aufgabe 3 (Iteration)
foo
foo(n) =
n
X
(2 · i + 1) = 2 ·
i=0
n
X
i+
i=0
n
X
1=2·
i=0
n · (n + 1)
+ (n + 1) = (n + 1)2
2
Die Summe der ersten (n + 1) ungeraden natürlichen Zahlen.
bar
bar(n) =
n X
n
X
n
X
1
i=0 j=i+1 k=j+1
Idee 1: direkt ausrechnen
bar(n) =
n X
n
X
n
X
1=
n−2
X n−1
X
i=0 j=i+1 k=j+1
n
X
i=0 j=i+1 k=j+1
1=
n−2
X n−1
X
(n − j) =
i=0 j=i+1
n−2
X n−1−i
X
i=0
j
j=1
= 1 + 2 + · · · + (n − 2) + (n − 1)+
1 + 2 + · · · + (n − 2)+
..
.
1 + 2+
1
=
n−1
X
i(n − i) = n
i=1
n−1
X
i=1
i−
n−1
X
i2
i=1
(n + 1)n(n − 1)
(n − 1)n n(n − 1)(2n − 1)
−
=
=n
2
6
6
n+1
=
.
3
Idee 2: geschickt zählen Behauptung: Es existiert eine Bijektion von der Menge aller 3elementigen Teilmengen von {0, 1, 2, . . . , n} in die Menge der 3-Tupel (i, j, k), mit 0 ≤ i ≤
n, i + 1 ≤ j ≤ n, j + 1 ≤ k ≤ n.
Beweis: Wir betrachten die elementweise Abbildung f : {a, b, c} 7→ sort(a, b, c) wobei
sort auf eingabe 3-er natürlicher Zahlen das aufsteigend geordnete 3-Tupel dieser Zahlen
zurückgibt. Es folgt direkt:
– Die Abbildung ist injektiv.
– Die Abbildung ist surjektiv.
Folgerung: f ist eine Bijektion und damit gilt bar(n) =
Pn Pn
i=0
j=i+1
Pn
k=j+1 1
Lösung von Aufgabe 4 (Rekursion)
(a) Sei x ∈ N beliebig aber fest. Wir betrachten die Aussage A(y): mult(x, y)= x · y.
Behauptung: ∀y ∈ N gilt A(y)
Beweis: vollständige Induktion
Beobachtung:
=
n+1
3
.
4
Algorithmen und Datenstrukturen“
”
Lösung zum Übungsblatt 0, SS 2012
• lsb(n) = 0 ⇔ n ist gerade, lsb(n) = 1 ⇔ n ist ungerade
• shiftL(n) = 2 · n
• shiftR(n) = n/2 ⇔ n ist gerade, shiftR(n) = (n − 1)/2 ⇔ n ist ungerade
I.A. z.z. A(0)
mult(x, 0) = 0 = x · 0 (Basisfall der Rekursion)
I.S. z.z. A(0) ∧ A(1) ∧ . . . ∧ A(y − 1) ⇒ A(y) für alle y > 0
1. Sei y gerade.
mult(x, y) = 2 · mult(x, y/2)
A(y/2)
=
2 · (x · y/2) = x · y ⇒ A(y) gilt für y gerade
2. Sei y ungerade.
mult(x, y) = 2 · mult(x, (y − 1)/2) + x
A((y−1)/2)
=
2 · (x · (y − 1)/2) + x = x · y
⇒ A(y) gilt für y ungerade
(b) Sei y ≥ 0. Dann gibt es einen Aufruf mult(x, 0).
Sei y ≥ 1. Dann gibt es einen Aufruf mult(x, 1).
Sei y ≥ 2. Sei i ≥ 1 mit 2i ≤ y < 2i+1 . Dann gibt es i Aufrufe mult(x, y 0 ) mit 2 ≤ y 0 ≤ y.
Es folgt: 1 Aufruf für y = 0 und blog2 yc + 2 Aufrufe für y ≥ 1.
(c) Rufe mult wie folgt auf: mult(max{x, y}, min{x, y})
(d) iterativ:
mult(x, y)
z←0
while y > 0 do
if lsb(y)= 1 then z ← z + x
x ← shiftL(x)
y ← shiftR(y)
end
return z
Herunterladen