Trace:
Repds15:hausaufgaben
This is an old revision of the document!
Table of Contents
Hausaufgaben
Tag 1
Mathematische Grundlagen, Asymptotik, Landau-Notation
- Welche Rechenregeln für Logarithmen gibt es?
- Vereinfache die folgenden Terme:
- $\log_2(8)$
- $\log_3(1)$
- $\log_2(n^4)$
- $\log_{10}\left(\frac{1}{n^2}\right)$
- $2^{\log_4(n)}$
- $\log_n(n)$
- $\log_a(b) \cdot \log_b(n)$
- $\log_2(4n^3)$
- $\log_2(\sqrt{n})$
- $\log_2\left( \sum_{i=0}^n i \right)$
- $\log_3\left(\prod_{i=1}^n 3^i \right)$
- $\sum_{i=1}^n n \cdot i$
- $\sum_{k=0}^n 2^{-k}$
- $\sum_{k=1}^{\frac{n}{2}} 4^{-k}$
- $\sum_{i=1}^n \frac{2}{i} <\underline{\qquad}$
- Wahr oder falsch? Begründe deine Antwort.
- $1 = \Theta(3)$
- $2 = \Omega(1)$
- $3 = \omega(2)$
- $n = \omega(1)$
- $f = \mathcal{O}(g)$ und $g = \mathcal{O}(f) \iff f = \Theta(g)$
- $\sum_{k=0}^n 2^{-k} = \mathcal{O}(1)$
- $\log_2(n) = \Theta(\log_8(n))$
- $2^{\log_2(2n)} = \mathcal{O}(n^2)$
- $f_1 = \Omega(g_1)$ und $f_2 = \Omega(g_2) \implies f_1 + f_2 = \Omega(g_1 + g_2)$
- $f = o(g) \iff f = \mathcal{O}(g)$
- $f(n) = g(\frac{n}{2}) \implies f = \Omega(g)$
- $f = o(g) \implies 2^f = o(2^g)$
Pseudocode und Laufzeitanalyse
Welchen Wert hat k in Abhängigkeit von n nach der Ausführung des Programms?
k = 1 for i=1,2,...,n k = k + 1
k = 1 for i=1,2,...,n k = k + 1 for j=1,2,...,100 k = k + 2
k = 1 for i=1,2,...,n*n k = k + 2
k = 1 for i=n,n/2,n/4...,1 k = k + 1
k = 1 for i=1,2,...,n k = k + i
k = 1 while i < n i = i + i k = k + 1
i = 0 k = 0 while i < n i = i + k k = k + 1
Umgekehrt: Schreibe Pseudocode mit den folgenden Laufzeiten:
- $\Theta(1)$
- $\Theta(n)$
- $\Theta(n^3)$
- $\Theta(2^n)$
- $\Theta(\sqrt{n})$
- $\Theta(\log{n})$
- $\Theta(\log{n^3})$
- $\Theta(n!)$
Rekursionsgleichungen aufstellen und lösen
Aufstellen:
def f(n): if n == 1 return 1 else return n + f(n-1)
def g(n): if n > 1: return g(n/2)
Lösen:
- $T(1) = 0$ und $T(n) = 2 T(\frac{n}{2}) + \frac{n}{2}$ für $n > 1$
- $T(2) = 1$ und $T(n) = T(\frac{n}{2}) + n - 1$