生成函数
一、普通生成函数
1、定义:形如一个形式幂级数,如 \(F(x)=a_0·x^0+a_1·x^1+a_2·x^2+...+a_n·x^n+...=\sum_{i\ge 0}a_i·x^i\)。
2、普通生成函数的几种基本运算:
-
加法:\(f(x)+g(x)=\sum_{i\ge 0}(a_i+b_i)·x^i\)
-
减法:\(f(x)-g(x)=\sum_{i\ge 0}(a_i-b_i)·x^i\)
-
乘法:\(f(x)·g(x)=\sum_{i\ge 0}\sum_{j=0}^i(a_j·b_{i-j})·x^i\)
3、例:我们现在有两个物品,我们规定取 \(i\) 个第一种物品的方案数为 \(a_i\) 种,取 \(j\) 个第二种物品的方案数为 \(b_i\) 种,现在我们想要取 \(k\) 个物品,请问有几种选取方案?
-
我们令 \(f(x)=1+a_1·x^1+a_2·x^2+...+a_i·x^i+...\) 为选取第一种物品的生成函数,令 \(g(x)=1+b_1·x^1+b_2·x^2+...+b_i·x^i+...\) 为选取第二种物品的生成函数
-
现在我们可以令 \(c(x)=f(x)·g(x)=\sum_{i\ge 0}\sum_{j=0}^i(a_j·b_{i-j})·x^i\),那么对应的取 \(k\) 个物品的 \(x^k\) 的系数就是所有方案数,即 \(\sum_{j=0}^k a_j·b_{k-j}\)。
4、定理:对于一个集合 \(S=\{a_1,a_2,...,a_n\}\),且 \(a_i\) 可以取的次数表示 \(M_i\),记 \(F_i(x)=\sum_{j=0}^{M_i}x^j\),那么从集合 \(S\) 中取 \(n\) 个元素的组成的集合的方案数 \(g(n)\) 的常生成函数为 \(G(x)=\sum_{i\ge 0}g_i·x^i\),满足 \(G(x)=F_1(x)·F_2(x)...F_k(x)\)。
5、形式幂级数的逆元:
-
形如 \(A(x)·B(x)=1\) 这种形式
-
逆元存在条件为 \([x^0]A(x)\ne 0\)
6、常见的逆元
-
若 \(A(x)=1+x+x^2+...\),\(B(x)=1-x\),那么就有 \(A(x)·B(x)=1\),即 \(A(x)=\frac{1}{1-x}=\sum_{i\ge 0}x^i\)。
-
若 \(A(x)=1+a·x+(a·x)^2+...\),\(B(x)=1-a·x\),那么也有 \(A(x)·B(x)=1\),即 \(A(x)=\frac{1}{1-a·x}=\sum_{i\ge 0}a^i·x^i\)。
-
若 \(A(x)=C_{k-1}^{0}+C_{k}^{1}·x^1+C_{k+1}^{2}·x^2+...\),\(B(x)=(1-x)^k\),则 \(A(x)·B(X)=1\),即 \(A(x)=\frac{1}{(1-x)^k}=\sum_{i\ge 0}C_{i+k-1}^{i}x^i\)。
7、一些普通生成函数的逆元化简:
-
\(1+x=\frac{1-x^2}{1-x}\)
-
\(1+x+x^2=\frac{1-x^3}{1-x}\)
-
由前面的多项式递推得到:\(\sum_{i=0}^{k}x^i=\frac{1-x^{k+1}}{1-x}\)
-
\(1+x^2+x^4+...=\frac{1}{1-x^2}\)
-
\(1+x^4+x^8+...=\frac{1}{1-x^4}\)
-
\(x+x^3+x^5+...=\frac{x}{1-x^2}\)
8、斐波那契生成函数:
-
递推公式:\(f_0=0,f_1=1,f_n=f_{n-1}+f_{n-2}\)。
-
生成函数:\(F(x)=x+x·F(x)+x^2·F(x)\),即 \(F(x)=\frac{x}{1-x-x^2}\)。
9、卡特兰生成函数:
-
递推公式:\(c_0=1,c_1=1,c_n=c_0·c_{n-1}+c_1·c_{n-2}+...+c_{n-1}·c_0\)。
-
生成函数:\(C(x)=1+x·C^{2}(x)\),即 \(C(x)=\frac{-1+\sqrt{1-4x}}{4x}\)
-
通项公式:\(c_n=\frac{c_{2n}^{n}}{n+1}\)
二、指数生成函数
1、定义:指数生成函数形如 \(A(x)=1+a_1·\frac{x^{1}}{1!}+a_2·\frac{x^2}{2!}+...=\sum_{i\ge 0}a_i·\frac{x^i}{i!}\)。
2、定理:对于一个集合 \(S=\{a_1,a_2,...,a_n\}\),且 \(a_i\) 可以取的次数表示 \(M_i\),记 \(F_i(x)=\sum_{j=0}^{M_i}\frac{x^j}{j!}\),那么从集合 \(S\) 中取 \(n\) 个元素排成一列的方案数 \(g(n)\) 的常生成函数为 \(G(x)=\sum_{i\ge 0}g_i·\frac{x^i}{i!}\),满足 \(G(x)=F_1(x)·F_2(x)...F_k(x)\)。
3、公式:
-
\(exp(x)=1+x+\frac{x^2}{2!}+\frac{x^3}{3!}...=\sum_{n\ge 0}\frac{x^n}{n!}=e^x\)。
-
\(exp(ax)=1+x+\frac{(ax)^2}{2!}+\frac{(ax)^3}{3!}...=\sum_{n\ge 0}a^n·\frac{x^n}{n!}=e^{ax}\)。

浙公网安备 33010602011771号