4. Erzeugende Funktionen und Polynome Definition 4.1. Sei a = (a0 , a1 ,P . . .) eine Folge von natürlichen Zahlen, dann heißt die formale Potenzreihe fa (t) := i≥0 ai ti die erzeugende Funktion von a. Gilt ai = Pj 0 für i > j, so heißt fa (t) = i=0 ai ti das erzeugende Polynome von (a0 , . . . , aj ). Bevor wir uns mir speziellen erzeugenden Funktionen beschäftigen, wollen wir zuerst klären, wie wir mit formalen Potenzreihen umgehen wollen. Definition 4.2. Die Menge C[[x]] := { X an xn | an ∈ C} n≥0 heißt Menge der formalen Potenzreihen (in einer Variablen) über C. Auf C[[x]] sind Addition + und Multiplikation · definiert durch: ( X an xn ) + ( n≥0 X bn xn ) = n≥0 X (an + bn )xn n≥0 und ( X an xn ) · ( n≥0 X bn xn ) = n X X ai bn−i )xn . ( n≥0 i=0 n≥0 Die folgende Aussage ist nun leicht nazurechnen. Lemma 4.3. Die Menge C[[x]] ist mit der Addtition und Multiplikation ein kommutativer Ring mit 1. Beschäftigen wir uns nun mit in diesemP Ring. Klat gilt für zwei P Identitäten n n formale Potenzreihen f (x) = a x und g(x) = n n≥0 n≥0 bn x die Gleichheit f (x) = g(x) genau dann, wenn an = bn für alle n ≥ 0. m Beispiel 4.4. Aus Kapitel 2 kennen wir folgenden Identität. Sei a = ( m 0 , . . . , m ). Pm m n Dann gilt n=0 n x = (1 + x)m . Etwas komplizierte ist schon: Beispiel 4.5. Sei a = (1, 1, 1, 1, . . .) die konstante Folge 1. Dann gilt 1/(1 − x). P i≥0 1 · xi = Wir betrachten hier diese Art von Identitäten vollkommen formal, d.h. es werden keine angestellt. Die Identität aus Beispiel 4.5 nur P Konvergenzüberlegungen P P besagt i −1 i i x = (1 − x) , also (1 − t) x = 1, d.h. (1 − x) und x sind i≥0 i≥0 i≥0 multiplikativ invers zueinander. Letzteres ist leicht nachzurechnen. Allgemeiner gilt für Potenzreiche f (x), g(x), h(x) die Identität f (x) = g(x)/h(x) genau dann wenn f (x)h(x) = g(x). Im folgenden geben wir noch ein zwei Beispiele in dieser Richtung. Beispiel 4.6. Sei an die Anzahl der Wörter der Länge n über einem Alphabet mit m Buchstaben, also an = mn , dann gilt X X an xn = mn xn = 1/(1 − mx). n≥0 n≥0 1 2 Beispiel 4.7. Sei am,n die Anzahl der Permutation in der Sm mit n Inversionen. Dann wissen wir aus Kapitel 1 (m2 ) X am,n xn = (1 + x + · · · + xm−1 ) · · · (1 + x + x2 ) · (1 + x) · 1. n=0 Das folgenden Beispiele aus den Übungsaufgaben zeigt, daß diese Überlegungen noch nicht genügen, um alle unserer Identitäten korrekt zu lesen. Beispiel 4.8. (i) Aus eine Übungsaufgabe kennen wir die Bell-Zahlen B(n), die die Anzahl der Mengenpartitionen von [n] zählen. Wir haben bewiesen: X x B(n)xn = ee −1 . n≥0 (ii) Sei p(n) die Anzahl der Zahl-Partitition der Zahl n ≥ 1. Wir setzen p(0) := 1. Dann haben wir durch Koeeffizientenvergleich gesehen: X p(n)xn = n≥0 ∞ Y 1 . 1 − xn n=0 Die Identität aus Beispiel 4.8 (ii) ist nun mit den bisherigen Methoden nicht vollständig zu erklären. Dort würde sie heißen: ∞ Y (1 − xn ) n=0 X p(n)xn = 1. n≥0 Q∞ Wenn wir aber in jedem Faktor des Produkte n=0 (1−xn ) den Summanden −xn selektieren und diese Summanden aufmultiplizieren wächst der Exponent gegen unendlich. Wir verlassen also im Prinzip unsere Menge C[[x]]. Die Identität aus Beispiel 4.8 (i) ist in ähnlcher Weise nicht klar definiert. Betrachten wir die rechte Seite X ( xm /m!)n x n X X x (e − 1) m≥1 = . ee −1 = n! n! n≥0 n≥0 Die rechte Seite ist klar als Reihe X fn (x) n≥0 von Elementen aus C[[x]] identifierbar. Wiederum besteht potentiel die Möglichkeit unsere Menge C[[x]] zu verlassen. Um diese Indentitäten daher korrekt verstehen zu können, müssen wir definieren, was wir unter eine kongergenten Folge von formalen Potenzreihen verstehen. Dazu benötigen wir erst den Begriff einer Norm auf der Menge der Potenzreihen. P Definition 4.9. Für eine formale Potenzreiche f (x) := n≥0 an xn definieren wir den Grad ||f (x)|| := 0, falls an = 0 für alle n ≥ 0 und, ||f (x)|| = 1/2d , für d = min{n | an 6= o} sonst. Man rechnet leicht nach. Lemma 4.10. Für formale Potenzreihen f (x), g(x) gelten: 3 (i) ||f (x)|| = 0 ⇔ f (x) = 0. (ii) ||f (x)|| ≥ 0. (iii) ||f (x) + g(x)|| ≤ ||f (x)|| + ||g(x)||. Insbesondere ist || · || eine Norma auf dem Ring C[[x]]. Nun kommen wir zum Konvergenzbegriff. Definition 4.11. Sei (fm (x))m≥0 eine Folge von formalen Potenzreihen in C[[x]]. Wir sagen (fm (x))m≥0 konvergiert gegen die formale Potenzreihe f (x) ∈ C[[x]], falls für alle > 0 ein M ≥ 0 existiert, so daß ||f( x) − fm (x)|| < für alle m ≥ M . Wir schreiben limm→∞ fm (x) = f (x). Nun sind wir in der Lage unendliche Summen und Produkte von formalen Potenzreihen zu definieren. Definition 4.12. Pn Sei (fm (x))m≥0 eine Folge Qnvon formalen Potenzreihen in C[[x]]. Sei gn (x) := f (x) und h (x) := n m=0 m m=0 fm (x). Konvergiert gn (x) gegen eine formale Potenzreiehe g(x), so schreiben wir ∞ X fm (x) = lim gn (x) = g(x). n→∞ m=0 Konvergiert hn (x) gegen eine formale Potenzreiehe h(x), so schreiben wir ∞ Y fm (x) = lim hn (x) = h(x). n→∞ m=0 Qm 1 Im Beispiel 4.8 betrachten wir dann die Folge fn (x) := m=1 1−x m . Mit den gleichen Argumenten, wie beim Koeffizientenvergleich zeigt man nun Y X 1 = lim f (x) = p(n)xn . n n→∞ 1 − xn m≥1 n≥0 Nun sind wir soweit formale Potenzreieh so zu manipulieren, daß wir interessante Beispiel rechnen können. Beispiel 4.13. Sie Wn die Anzahl der Möglichkeiten eine Mauer der Länge n und Höhe 2 mit Dominosteinen, die senkrecht und wagrecht gelegt werden können zu bauen. Wir setzen w0 = 1 und w1 = 1 ergibt sich. Sei nun n ≥ 2. Beginnt die Mauer links mit einem senkrechten Domino-Stein, so ist der Rest der Mauer eine Mauer der Länge n − 1 und der Höhe 2. Begint die Mauer links mit einem waagrechten Domino-Stein, so liegen dort 2 waagrechte Domino-Steine aufeinander. Der Rest der Mauer ist eine Mauer der Länge n − 2 und der Höhe 2. Damit ergibt sich für wn die PFormel wn = wn−1 + wn−2 . Betrachten wir nun die erzeugende Reihe w(x) = n≥0 wn xn der Folge w = (w0 , w1 , . . .). Es gilt: X X X w(x) = wn xn = 1 + x + wn xn = 1 + x + (wn−1 + wn−2 )xn = n≥0 n≥2 1+x+x X n≥2 wn−1 xn−1 + x2 n≥2 X n≥2 wn−2 xn−2 = 4 1+x+x X wn xn + x2 X wn xn = n≥0 n≥1 1 + x + x(w(x) − 1) + x2 w(x) = 1 + xw(x) + x2 w(x). Also ergibt sich: 1 . 1 − x − x2 Wie erhalten wir daraus eine Formel für wn ??? w(x) = Im weiteren werden wir den allgemeinen Binomialsatz verwenden: Satz 4.14 (Binomialsatz). Sei α ∈ Q, dann gilt: X α α (1 + x) = xn . n n≥0 Nun sind wir noch einmal an einem Punkt, an wir klären müssen, wie wir die Identität aus Satz 4.14 zu verstehen haben. Ist α = p/q rine rationale Zahl dargestellt als Bruch von ganzen Zahlen p, q mit q 6= 0, so kann Satz 4.14 auch glesen werden als: (1 + x)p = ( X α n≥0 n xn )q . Satz 4.15. Für eine Folge a = (a0 , a1 , . . .) von komplexen Zahlen und ein d-Tupel (α1 , . . . , αd ) ∈ Cd mit αd 6= 0 sind äquivalent. (i) X P (x) fa (x) = an xn = Q(x) n≥0 mit Q(x) = 1 + α1 t + · · · + αd td und einem Polynom P (x) vom Grad < d. (ii) an+d + α1 an+d−1 + · · · + αd an = 0 für n ≥ 0. (iii) Für n ≥ 0 gilt an = k X Pi (n)γin i= mit 1 + α1 x + · · · + αd xd = k Y (1 − γi x)di , so daß γi 6= γj , 1 ≤ i < j ≤ k i=1 und Pi (t) ein Polynom vom Grad < di . Proof. Wir setzen Q(x) = 1 + α1 x + · · · + αd xd und definieren die vier Mengen. Dabei sind V1 , V2 , V3 genau die Mengen der Folgen, die (i) , (ii) und (iii) erfüllen. Die Aussage des Satzes ist also äquivalent mit V1 = V2 = V3 . P n (1) V1 = {a = (a0 , a1 , . . .) | n≥0 an x = P (x)/Q(x) für ein Polynom P (x) vom Grad d }. (2) V2 = {a = (a0 , a1 , . . .) | an+d + α1 an+d−1 + · · · + αd an = 0 für n ≥ 0 }. 5 Pk (3) V3 = {a = (a0 , a1 , . . .) | für n ≥ 0 gilt an = i= Pi (n)γin mit Q(x) = Qk di i=1 (1 − γi x) , so daß γi 6= γj , 1 ≤ i < j ≤ k und Pi (n) Polynome in n vom Grad < di }. P Pk n −di (4) V4 = {a = (a0 , a1 , . . .) | mit Polyn≥0 an x = i=1 Gi (x)(1 − γi x) nomen Gi (x) vom Grad < di und γi , di wie in V3 }. Mna zeigt nun: (1) V1 , V2 , V3 , V4 sind C-Vektorräume. (2) dim(V1 ) = dim(V2 ) = dim(V3 ) = dim(V4 ) = d. Beweis von (1): Die Menge aller Folgen (an )n≥0 von komplexen Zahlen bildet mit der Addition (an )n≥0 + (bn )n≥0 := (an + bn )n≥0 und der Skalarmultiplikation λ(an )n≥0 := (λan )n≥0 einen C-Vektorraum. Man rechnet nun für V1 , V2 , V3 , V4 nach, daß (a) die Nullfolge (0)n≥0 enthalten ist und (b) mit (an (n≥0 , (bn )n≥0 und komplexen λ, µ auch λ(sn )n≥0 + µ(bn )n≥0 . Beweis von (2): Da in V1 die d Koeffizienten von P (x) frei gewählt werden können, in V2 die d Anfangswerte a0 , . . . , ad−1 , in V3 die d Koeffizienten der Pi (x) und in V4 die d Koeffizienten der Gi (x). In einem dritten Schritt zeigen wir nun: (3) Es gelten die Inklusionen: V1 ⊆ V2 , V4 ⊆ V1 und V4 ⊆ V3 . indent Beweis von (3): P V1 ⊆ V2 : Sei a = (a0 , a1 , . . .) ∈ V1 . Das Produkt Q(y) n≥0 an tn ist gleich P (t). Da P (x) einen Grad < d hat, gilt an+d + α1 an+d−1 + · · · + αd an = 0 für n ≥ 0 } und damit a ∈ V2 . Also V1 ⊆ V2 und wegen dim V1 = dim V2 = d gilt dann schon V1 = V2 . V4 ⊆ V1 : Sei a = (a0 , a1 , . . .) ∈ V4 . Dann gilt X n an x = k X −di Gi (x)(1 − γi x) i=1 n≥0 Pk k X Y =( Gi (x) (1 − γj x)dj )/Q(x), i=1 j6=i Da i=1 Gi (x) j6=i (1 − γj x)dj einen Grad < d hat folgt a ∈ V1 und damit V4 ⊆ V1 . Wiederum wegen dim V1 = dim V4 = d gilt dann V1 = V4 . Pk −di V4 ⊆ V3 : Sei a = (a0 , a1 , . . .) ∈ V4 . Die Summe ist eine i=1 Gi (x)(1 − γi x) j c endliche Linearkombination von Termen der Form x /(1−γx) für geeignete Paramter 0 ≤ j < c. Es gilt nun: Q X −c X tj t n n n −j c + n − 1 − j = x (−γx) = x γ γ . (1 − γx)c n c−1 n≥0 n≥j Wir benutzen hier n −c (−1) = (−1)n (−c) · · · (−c − n + 1)/n! n c+n−1 c+n−1 = c(c + 1) · · · (c + n − 1)/n! = = . n c−1 Nun ist γ −j c+n−1−j ein Polynom vom Grad c − 1 in n. Dies impliziert c−1 a ∈ V3 und V4 ⊆ V3 . Die Gleichheit der Dimensionen zeigt wiederum V3 = V4 . 6 Da zwichen Vektorräumen der gleichen Dimension keine echten Inklusionen gelten können folgt aus (2) und (3), daß V1 = V2 = V3 = V4 . Damit folgt die Behauptung. Bemerkung 4.16. heißt • Sind P (x), Q(x) ∈ C[x] Polynome und Q(x) 6= 0, so P (x) Q(x) eine rationale Funktion. • Ist a = (an )n≥0 eine Folge komplexer Zahlen, so daß für feste (α1 , . . . , αd ) ∈ Cd mit αd 6= 0 gilt: an+d + α1 an+d−1 + · · · + αd an = 0 für n ≥ 0, so sagen wir a genügt einer linearen Rekursion vom Grad d. Beispiel 4.17. Sei an die Anzahl der Worte der Länge n über dem Alphabet Σ = {a, b, c} so daß ab und aa nicht als Teilworte vorkommen. Dann gilt an = 2an−1 + an−2 . Also an+2 − 2an+1 − an = 0, n ≥ 0. Sei √ √ Q(x) = 1 − 2t − t2 = (1 − (1 − 2)t)(1 − (1 + 2)t). √ √ Damit ist an = P1 (n)(1 − 2)n + P2 (n)(1 + 2)n . Mit Polynomen P1 und P2 vom Grad 0. Also sind P1 (t) = A und P2 (t) = B nur Konstanten. Betrachten wir die ersten Folgenglieder a0 = 1 und a1 = 3. Wir√erhalten: A + B =√1 und √ beiden √ A(1− 2)+B(1+ 2) = 3. Wir erhalten dann A = (1+ 2)/2 und B = (1− 2)/2. Beispiel 4.18 (Merge Sort:). Aufgabe ist es eine Liste a mit n Einträgen zu sortieren. if (n = 1) Return(a); a[1..bn/2c] = M erge Sort(a[1..bn/2c]); a[bn/2c] + 1..n] = M erge Sort(a[bn/2c] + 1..n]); i = 1; i1 = 1; i2 = bn/2c] + 1; while ((i1 <= bn/2c) or (i2 <= n)) do if ((i1 <= bn/2c)and(a[i1 ] < a[i2 ])) { b[i] = a[i1 ]; i1 + +; } else{ b[i] = a[i2 ]; i2 + +; } i + +; } Return(b); Sei nun an die Anzahl der Schritte beim Merge Sort einer Liste mit n Einträgen. Es gilt: an = abn/2c + an−bn/2c + C · n + D 7 für natürliche Zahlen C und D. Um die Analyse zu vereinfachen interessieren wir uns für n = 2m , die 2er-Potenzen sind und betrachten die erzeugende Reihe der Folge b = (b0 , b1 , . . .) = (a1 , a2 , a4 , a8 , . . .). Die ist gerechtfertigt, da man bei einem Algorithmus of nur an dem asymtotischen Verhalten der Laufzeit für große n interessiert ist. Allgemeiner als benötigt untersuchen wir die Rekursion: bn = Bbm−1 + Cm + D, m ≥ 0. b0 = 1 fb (x) = X bm xm = b0 + m≥0 1 + Bx X (Bbm−1 + Cm + D)xm = m≥1 X bm xm + C m≥0 X 2m xm + D m≥1 X xm = m≥1 1 + Bxfb (x) + C(1/(1 − 2x) − 1) + D(1/(1 − x) − 1) = 1 + Bxfb (x) + C(2x/(1 − 2x)) + D(x/(1 − x)) Also: fb (x) = 1/(1 − Bx) · (1 + 2Cx/(1 − 2x) + D(x/(1 − x)) = 2(C + D − 1)x2 + (−2 ∗ C − D + 3)x − 1 . (1 − Bx)(1 − 2x)(1 − x) Für B = 2 folgt dann dann: bm = a2m = 2m P1 (m) + 1m P2 (m) mit Polynomen P1 (m) vom Grad ≤ 1 und P2 (m) vom Grad ≤ 2. Assymptotisch ergibt sich also a2m ' 2m · m. Für die Folge an ergibt sich also ein Verhalten von n · log(n). Betrachten wir nun ein Beispiel einer Folge mit einer erzeugenden Funktion, die nicht rational ist: Beispiel 4.19. Sei An die Menge der Permutationen in der Sn , die 231 vermeiden. Wir beszeichnen mit An,i die Menge der Permutation w = w1 · · · wn in An mit wi = n. Dann gilt wj < wl für alle 1 ≤ j < i < l ≤ n. Da sonst wj wi wl das Muster 231 erfüllen würde. Somit ist w1 · · · wi−1 eine 231 vermeidente Permutation von [i − 1] und wi+1 · · · wn eine 231 vermeidente Permutation von [n − 1] \ [i − 1]. Es gilt also #An,i = #Ai−1 #An−i . Damit haben wir gezeigt, daß für an := #An gilt: n X a0 = 0 und an = ai−1 an−i , n ≥ 1. i=1 Betrachten wir nun die erzeugende Reihe von a := (a0 , a1 , . . .). X X fa (x) = an xn = a0 + an xn = n≥0 =1+ n XX n≥1 i=1 n≥1 ai−1 an−i xn = 1 + x n XX n≥0 i=0 ai an−i xn = 8 =1+( X an xn )2 = 1 + xfa (x)2 . n≥0 Damit erfüllt fa (x) die quadratische Gleichung: xfa (x)2 − fa (x) + 1 = 0. Lösen wir nun diese quadratische Gleichung nach fa (x) auf, so erhalten wir: fa (x) = p 1 · (1 ± 1 − 4x). 2x Da fa (0) = a0 = 1 folgt damit p 1 fa (x) = · (1 − 1 − 4x). 2x 1 2 (−4x)n folgt für n ≥ 1: n P Da (1 − 4x)1/2 = n≥0 1 1 1 1 1 (−4)n · 2 = (−4)n · · ( − 1) · ( − 2) · · · ( − n + 1)/n! = 2 2 2 2 n (−1)n · (−1)n−1 · 2n · 1(2 − 1)(4 − 1) · · · (2n − 2 − 1)/n! = −2n · (2n − 2)!/(2n−1 (n − 1)!n!) = − 2 2n − 2 . n n−1 erhalten wir X 2 2n − 2 1 1 1/2) (1 − (1 − 4x) = (1 − 1 − xn ) = 2x 2x n n−1 n≥1 1 X 2 2n − 2 n X 1 2n n x = x . 2x n n−1 n+1 n n≥1 n≥0 2n 1 Ein Koeffizientenvergleich ergibt also an = n+1 . n 2n 1 Die Zahl Cn := n+1 n heißt auch n-te Catalan Zahl.