7.3 Erzeugendenfunktionen
F¨ ur lineare und nicht lineare Rekursionsgleichungen erh¨ alt man oft eine L¨ osung, indem man die f n als Koeffizienten einer Potenzreihe betrachtet und eine geschlossene Form der dadurch definierten Funktion sucht.
Definition 6 (Erzeugendenfunktion)
Sei die Folge (f n ) n≥0 gegeben. Die zugeh¨ orige (gew¨ ohnliche) Erzeugendenfunktion ist
F (z) :=
∞
X
n=0
f n z n ; z ∈ C ;
exponentielle Erzeugendenfunktion ist
F (z) = X
n≥0
f n
n! z n ; z ∈ C .
EADS 7.3 Erzeugendenfunktionen 38/598
ľErnst W. Mayr
Beispiel 7
1
Die Erzeugendenfunktion der Folge (1, 0, 0, . . .) ist
F (z) = 1 .
2
Die Erzeugendenfunktion der konstanten Folge (1, 1, 1, . . .) ist F (z) = 1
1 − z .
EADS 7.3 Erzeugendenfunktionen 39/598
ľErnst W. Mayr
Falls F (z) = P
n>0
f n z n , bezeichnet
[z n ]F (z) den n-ten Koeffizienten f n .
EADS 7.3 Erzeugendenfunktionen 40/598
ľErnst W. Mayr
Sei F (z) = P
n≥0
f n z n und G(z) = P
n≥0
g n z n .
ErzFkt. n-tes Folgenglied Anmerkungen:
cF cf
nF + G f
n+ g
nF · G h
n:=
P
n i=0f
ig
n−i(Konvolution) P
i≥0
f
iz
i! P
i≥0
g
iz
i!
= P
i≥0
h
iz
i(mit h
n=
P
n i=0f
ig
n−i)
z
kF if n < k then 0 else f
n−kfi
F(z) 1−z
P
n i=0f
i 11−z
= P
n≥0
z
nz
dF(z)dznf
nR
x 0F (t)dt if n = 0 then 0 else
fn−1nfi f
nz
ngeht ¨ uber auf f
nzn+1 n+1F (cz) c
nf
nF (cz) = P
n≥0
f
nc
nz
nEADS 7.3 Erzeugendenfunktionen 41/598
ľErnst W. Mayr
Beispiel 8
F (z) := X
n≥0
2 n z n = 1 1 − 2z G(z) := X
n≥0
nz n = z (1 − z) 2
⇒ F (z)G(z) = z
(1 − z) 2 (1 − 2z) = X
n≥0 n
X
i=0
(n − i)2 i z n
EADS 7.3 Erzeugendenfunktionen 42/598
ľErnst W. Mayr
Partialbruchzerlegung:
z
(1 − z) 2 (1 − 2z) =
(1)
z }| {
−2
(1 − z) + −z (1 − z) 2 +
(2)
z }| { 2 1 − 2z
= X
n≥0
2 n+1 z n
| {z }
(2)
− X
n≥0
nz n − 2 X
n≥0
z n
| {z }
(1)
;
Also:
n
X
i=0
2 i (n − i) = [z n ](F G)(z)
= [z n ]
X
n≥0
(2 n+1 − n − 2)z n
= 2 n+1 − n − 2 .
EADS 7.3 Erzeugendenfunktionen 43/598
ľErnst W. Mayr
7.4 Transformation des Definitions- bzw. Wertebereichs Beispiel 9
f 0 = 1 f 1 = 2
f n = f n−1 · f n−2 f¨ ur n ≥ 2 . Setze
g n := log f n . Dann gilt
g n = g n−1 + g n−2 f¨ ur n ≥ 2
g 1 = log 2 = 1, g 0 = 0 (f¨ ur log = log 2 ) g n = F n (n-te Fibonacci-Zahl)
f n = 2 F
nEADS 7.4 Transformation des Definitions- bzw. Wertebereichs 44/598 ľErnst W. Mayr
Beispiel 10
f 1 = 1 f n = 3f
n2
+ n; f¨ ur n = 2 k ; Setze
g k := f 2
k.
EADS 45/598
ľErnst W. Mayr
Beispiel 10 Dann gilt:
g 0 = 1
g k = 3g k−1 + 2 k , k ≥ 1 Damit ergibt sich:
g k = 3 k+1 − 2 k+1 , also f n = 3 · 3 k − 2 · 2 k
= 3(2 log 3 ) k − 2 · 2 k
= 3(2 k ) log 3 − 2 · 2 k
= 3n log 3 − 2n .
EADS 7.4 Transformation des Definitions- bzw. Wertebereichs 45/598 ľErnst W. Mayr
Kapitel II H¨ ohere Datenstrukturen
1. Grundlegende Operationen
Es sei U das Universum von Schl¨ usseln mit einer (totalen) Ordnung ≤. S ⊆ U sei eine Teilmenge der Schl¨ ussel. Gegeben seien eine Menge von Datens¨ atzen x 1 , · · · , x n , wobei jeder Datensatz x durch einen Schl¨ ussel k(x) ∈ S gekennzeichnet ist.
Jeder Datensatz x besteht aus seinem Schl¨ ussel k(x) und seinem eigentlichen Wert v(x).
EADS 1 Grundlegende Operationen 46/598
ľErnst W. Mayr
IsElement(k, S ): ist k ∈ S, wenn ja, return v(k) Insert(k, S): S := S ∪ {k}
Delete(k; S): S := S \ {k}
FindMin(S): return min S FindMax(S): return max S DeleteMin(S): S := S \ min S
ExtractMin(S): return min S, S := S \ min S DecreaseKey(k, ∆, S): ersetze k durch k − ∆ Union(S 1 , S 2 ): S 1 := S 1 ∪ S 2
Find(k): falls k ∈ S, so finde x mit k = k(x) Merge(S 1 , S 2 ): S 1 := S 1 ∪ S 2 , falls S 1 ∩ S 2 = ∅ Split(S 1 , k, S 2 ): S 2 := {k 0 ∈ S 1 |k 0 ≥ k}
S 1 = {k 0 ∈ S 1 |k 0 < k}
Concatenate(S 1 , S 2 ): S 1 := S 1 ∪ S 2 ;
Vorauss.: FindMax(S 1 ) ≤ FindMin(S 2 )
EADS 1 Grundlegende Operationen 47/598
ľErnst W. Mayr
Datenstrukturklasse mindestens angebo- realisiert in tene Funktionen
W¨ orterbuch IsElement(), Hashtable, (Dictionary) Insert(), Delete() Suchb¨ aume Vorrangwarteschlange FindMin(), Insert(), balancierte, leftist (Priority Queue) Delete(), B¨ aume, Binomial
[IsElement()] Queues Mergeable heaps FindMin(), 2-3-B¨ aume,
Insert(), Delete(), Binomial Queues, Merge() Leftist-B¨ aume Concatenable queues FindMin(), 2-3-B¨ aume
Insert(), Delete(), Concatenate()
EADS 1 Grundlegende Operationen 48/598
ľErnst W. Mayr