Funkcja tworząca jest narzędziem w kombinatoryce i teorii szeregów służącym do kodowania ciągów liczb w postaci formalnych szeregów potęgowych. Za pomocą tego narzędzia można zliczać obiekty kombinatoryczne oraz rozwiązywać rekurencje.
Określenie szeregu \(\sum_{n=0}^{\infty }a_nx^n\) jako formalny oznacza, że traktujemy go jako obiekt czysto algebraiczny, w którym nie rozważamy zbieżności ani wartości funkcji. Traktujemy ten nieskończony wielomian jako czysto formalną sumę.
Zauważmy również, że w powyższej definicji numerujemy wyrazy ciągu od \(0\), czyli pierwszy wyraz ciągu to \(a_0\).
\( G(x) = \sum_{n=0}^{\infty} a_n\,x^n \) \( = \sum_{n=0}^{\infty} 1\cdot x^n \) \( = 1 + x + x^2 + x^3 + \cdots \)
Korzystając ze wzoru na sumę szeregu geometrycznego \(1, x, x^2, x^3,...\) o pierwszym wyrazie równym \(1\) oraz ilorazie \(q=x\) otrzymujemy: \[1 + x + x^2 + x^3 + \cdots = \frac{1}{1 - x}\] Zatem ostatecznie funkcja tworząca to: \[G(x)=\frac{1}{1 - x}\]\(G(x) = \sum_{n=0}^{\infty} a_nx^n\) \(= \sum_{n=0}^{\infty} (n+1)x^n\) \(= 1 + 2x + 3x^2 + 4x^3 + \cdots\)
Spróbujemy wyznaczyć skończony wzór na \(G(x)\).
W tym celu wykorzystamy równanie wyprowadzone w poprzednim przykładzie: \[\sum_{n=0}^{\infty} x^n = \frac{1}{1 - x}\] Zróżniczkujmy je stronami (bo dzięki temu otrzymamy wyrażenie zbliżone do \(\bigl((n+1)x^n\bigl)\)): \[\begin{split} \frac{d}{dx}\left(\sum_{n=0}^{\infty} x^n\right) &= \frac{d}{dx}\left(\frac{1}{1 - x}\right)\\[6pt] \sum_{n=1}^{\infty} nx^{n-1} &= \frac{1}{(1 - x)^2}\\[6pt] \end{split}\] W wyniku policzenia pochodnej lewej strony zmienił się zakres sumowania z \(n\in \{0,1,2,...\}\) na \(n\in \{1,2,3,...\}\). Wynika to z tego, że pochodna pierwszego wyrazu sumy \(\sum_{n=0}^{\infty} x^n\) jest równa zero (bo jest to liczba stała).\(G(x) = \sum_{n=0}^{\infty} n(n-1)\,x^n\) \(= 2x^2 + 6x^3 + 12x^4 + \cdots\)
Spróbujemy wyznaczyć skończony wzór na \(G(x)\).Taka konstrukcja ciągu wynika z tego, że jeżeli włożymy do pudełka konkretną, nieparzystą liczbę kul (np. \(7\) kul), to możemy to zrobić tylko na \(1\) sposób (bo kule są nierozróżnialne). Zatem na \(7\) miejscu w ciągu stoi liczba \(1\) (bo mamy \(1\) sposób na włożenie \(7\) kul do pudełka). Na parzystych miejscach stoją zera, bo mamy \(0\) sposobów żeby włożyć parzystą liczbę kul do pudełka.
Czyli ciąg dla którego mamy stworzyć funkcję tworzącą ma postać: \[(0,1,0,1,...)\] Zatem mamy:\(G(x) = \sum_{n=0}^{\infty} a_n\,x^n\) \(= x + x^3 + x^5 + \cdots\)
Korzystając ze wzoru na szereg geometryczny o pierwszym wyrazie równym \(x\) i ilorazie \(q=x^2\) mamy: \[ x + x^3 + x^5 + \cdots = \frac{x}{1 - x^2} \] Aby zapisać funkcję tworzącą powinniśmy najpierw zdefiniować ciąg \(a_n\).
Może się okazać, że jeżeli mamy zdarzenie złożone z kilku niezależnych zdarzeń, to trudno jest od razu podać ciąg dla całości. Wtedy konstruujemy niezależne ciągi dla wszystkich niezależnych zdarzeń (u nas dla każdego pudełka oddzielnie) i tworzymy dla nich oddzielne funkcje tworzące.
\[ G(x) = G_1(x)\,G_2(x) = \frac{1}{1 - x^2}\;\cdot\;\frac{x}{1 - x^2} = \frac{x}{(1 - x^2)^2} \]
Na podstawie rozwinięcia: \[\displaystyle\frac{1}{(1 - x^2)^2} = \sum_{k=0}^{\infty}(k+1)x^{2k}\] (które pokazaliśmy w poprzednich przykładach), otrzymujemy: \[ G(x) = \sum_{n=0}^{\infty}(n+1)x^{2n+1}. \] Niech \(a_n\) oznacza współczynnik przy \(x^n\) funkcji \(G(x)\). Wówczas: \[ a_n = \begin{cases} \frac{n+1}{2}, & \text{dla }n\text{ nieparzystego},\\ 0, & \text{dla }n\text{ parzystego}. \end{cases} \] Zatem ciąg \(a_n=(a_0,a_1,a_2,a_3,\dots)\) dla całego zdarzenia ma postać: \[ (0,\;1,\;0,\;2,\;0,\;3,\;0,\;4,\;\dots). \] Zatem liczba sposobów rozmieszczeń wynosi: