生成函数
普通生成函数
一个序列 \(\{a_n\}\) 的普通生成函数为
\[f(x)=\sum_{i=0}^{\infty} a_ix^i
\]
他可以通过四则运算得到答案序列的生成函数。
常用形式:
- \(\forall i,a_i=1 \ \ : \ f(x)=\sum\limits_{i=0}^{\infty} x^i=\frac{1}{1-x}\)
- \(\forall i,a_{ki}=1 \ \ : \ f(x)=\sum\limits_{i=0}^{\infty} [k|i]x^i=\frac{1}{1-x^k}\)
- \(a_i=\binom{n}{i} \ \ : \ \sum\limits_{i=0}^{\infty}\binom{n}{i}x^i=(1+x)^n\)
普通生成函数可以用来解决一些组合问题。
指数生成函数
一个序列 \(\{a_n\}\) 的指数生成函数为
\[f(x)=\sum_{i=0}^{\infty} a_i\frac{x^i}{i!}
\]
常用形式:
- \(\forall i,a_i=1 \ \ : \ f(x)=\sum\limits_{i=0}^{\infty} \frac{x^i}{i!}=e^x\)
- \(\forall i,a_{i}=k^i \ \ : \ f(x)=\sum\limits_{i=0}^{\infty} k^i\frac{x^i}{i!}=e^{kx}\)
- \(\forall i,a_{2i}=1 \ \ : \ f(x)=\sum\limits_{i=0}^{\infty} [i\%2=0]\frac{x^i}{i!}=\frac{e^x+e^{-x}}{2}\)
- \(\forall i,a_{2i+1}=1 \ \ : \ f(x)=\sum\limits_{i=0}^{\infty} [i\%2=1]\frac{x^i}{i!}=\frac{e^x-e^{-x}}{2}\)
若两个序列 \(a\) 和 \(b\) 的指数生成函数相乘
\[\begin{aligned}
F(x) \cdot G(x) &= (\sum\limits_{i = 0}^{\infty} a_i \frac{x^i}{i!})(\sum\limits_{i = 0}^{\infty} b_i \frac{x^i}{i!}) \\
&= \sum\limits_{n = 0}^{\infty} (\sum\limits_{i = 0}^{\infty} \frac{a_ix^i}{i!} \cdot \frac{b_{n - i}x^{n - i}}{(n - i)!}) \\
&= \sum\limits_{n = 0}^{\infty} (\sum\limits_{i = 0}^{\infty} {n \choose i} a_i b_{n - i}) \frac{x^n}{n!}
\end{aligned}
\]
其意义是从集合 \(A\) 和集合 \(B\) 中分别选出 \(a\) 个和 \(b\) 个组成有序的序列的个数。