跳转至

多项式科技

生成函数

序列 aa (有穷无穷均可)的普通生成函数定义为形式幂级数:F(x)=nanxn\displaystyle F(x)=\sum_na_nx^n。例如:

  1. a=1,2,3a=\lang1,2,3\rang 的普通生成函数是 1+2x+3x21+2x+3x^2
  2. a=1,1,1,a=\lang1,1,1,\dots\rang 的普通生成函数是 n0xn\displaystyle\sum_{n\geq 0}x^n
  3. a=1,2,4,8,16,a=\lang1,2,4,8,16,\dots\rang 的生成函数是 n02nxn\displaystyle\sum_{n\geq 0}2^nx^n
  4. a=1,3,5,7,9a=\lang1,3,5,7,9\rang 的生成函数是 n0(2n+1)xn\displaystyle\sum_{n\geq 0}(2n+1)x^n

换句话说,如果序列 aa 有通项公式,那么它的普通生成函数的系数就是通项公式。

基本运算

两个序列 a,ba,b 的生成函数 F(x),G(x)F(x),G(x),则 F(x)±G(x)F(x)\pm G(x) 是序列 an±bn\lang a_n\pm b_n\rang 的生成函数。

F(x)±G(x)=n(an±bn)xnF(x)\pm G(x)=\sum_{n}(a_n\pm b_n)x^n

乘法运算即卷积,推出 F(x)G(x)F(x)G(x) 是序列 i=0naibni\left\lang\displaystyle\sum_{i=0}^na_ib_{n-i}\right\rang 的生成函数。

F(x)G(x)=nxni=0naibniF(x)G(x)=\sum_nx^n\sum_{i=0}^na_ib_{n-i}

形式幂级数形式 \to 封闭形式

例如 a=1,1,1,a=\lang1,1,1,\dots\rang 的普通生成函数是 F(x)=n0xn\displaystyle F(x)=\sum_{n\geq 0}x^n,可以发现 F(x)x+1=F(x)F(x)x+1=F(x),于是解方程得到 F(x)=11x\displaystyle F(x)=\frac{1}{1-x},这就是 n0xn\displaystyle\sum_{n\geq 0}x^n 的封闭形式。

又例如等比数列 1,p,p2,\lang1,p,p^2,\dots\rang 的生成函数 F(x)=n0pnxnF(x)=\displaystyle\sum_{n\geq 0}p^nx^n,有 F(x)px+1=F(x)F(x)px+1=F(x)F(x)=11pxF(x)=\displaystyle\frac{1}{1-px}.

a=1,0,1,0,1,a=\lang 1,0,1,0,1,\dots\rangF(x)=n0x2n=11x2F(x)=\displaystyle\sum_{n\geq 0}x^{2n}=\frac{1}{1-x^2}

a=1,2,3,4,a=\lang 1,2,3,4,\dots\rangF(x)=n0(n+1)xn=n0(xn)=(11x)=1(1x)2F(x)=\displaystyle\sum_{n\geq 0}(n+1)x^n=\sum_{n\geq 0}(x^n)'=\left(\frac{1}{1-x}\right)'=\frac{1}{(1-x)^2}

an=(mn)a_n=\begin{pmatrix}m\\n\end{pmatrix}F(x)=n0(mn)xn=(1+x)mF(x)=\displaystyle\sum_{n\geq 0}\begin{pmatrix}m\\n\end{pmatrix}x^n=(1+x)^m

FibFib 数列定义为 a0=0,a1=1,an=an1+an2a_0=0,a_1=1,a_n=a_{n-1}+a_{n-2},于是有

F(x)=xF(x)+x2F(x)a0x+a1x+a0    F(x)=x1xx2F(x)=xF(x)+x^2F(x)-a_0x+a_1x+a_0\implies F(x)=\frac{x}{1-x-x^2}

应用

  1. 在许多不同种类的食物中选出 nn 个,计算方案数。每种食物的限制如下:
汉堡:偶数个可乐:不超高一个鸡腿:不超过两个蜜桃多:奇数个
鸡块:44 的倍数个包子:不超过三个土豆片炒肉:不超过一个面包:33 的倍数个

构造生成函数:

n0x2n=11x2\displaystyle\sum_{n\geq 0}x^{2n}=\frac{1}{1-x^2}1+x1+x1+x+x2=1x31x\displaystyle 1+x+x^2=\frac{1-x^3}{1-x}x1x2\displaystyle\frac{x}{1-x^2}
n0x4n=11x4\displaystyle\sum_{n\geq 0}x^{4n}=\frac{1}{1-x^4}1+x+x2+x3=1x41x\displaystyle 1+x+x^2+x^3=\frac{1-x^4}{1-x}1+x1+x11x3\displaystyle\frac{1}{1-x^3}

全部乘起来得到答案的生成函数:

F(x)=(1+x)(1x3)x(1x4)(1+x)(1x2)(1x)(1x2)(1x4)(1x)(1x3)=x(1x)4=n1(n+2n1)xnF(x)=\frac{(1+x)(1-x^3)x(1-x^4)(1+x)}{(1-x^2)(1-x)(1-x^2)(1-x^4)(1-x)(1-x^3)}=\frac{x}{(1-x)^4}=\sum_{n\geq 1}\begin{pmatrix}n+2\\n-1\end{pmatrix}x^n

于是答案 =(n+2n1)=(n+23)=\begin{pmatrix}n+2\\n-1\end{pmatrix}=\begin{pmatrix}n+2\\3\end{pmatrix}

  1. an+1+an=2n,a0=0a_{n+1}+a_n=2^n,a_0=0,求通项。

f(x)=n=0+anxnf(x)=\displaystyle\sum_{n=0}^{+\infty}a_nx^n,原式变为 x1(an+1xn+1)+anxn=(2x)nx^{-1}(a_{n+1}x^{n+1})+a_nx^n=(2x)^n,再求和有

n=0+x1(an+1xn+1)+n=0+(anxn)=n=0+(2x)n=112x    (1x+1)f(x)=112x\displaystyle\sum_{n=0}^{+\infty}x^{-1}(a_{n+1}x^{n+1})+\sum_{n=0}^{+\infty}(a_nx^n)=\sum_{n=0}^{+\infty}(2x)^n=\frac{1}{1-2x}\implies (\frac{1}{x}+1)f(x)=\frac{1}{1-2x}
f(x)=x(12x)(1+x)=13(112x11+x)=13n=0+[2n(1)n]xnf(x)=\frac{x}{(1-2x)(1+x)}=\frac{1}{3}(\frac{1}{1-2x}-\frac{1}{1+x})=\frac{1}{3}\sum_{n=0}^{+\infty}[2^n-(-1)^n]x^n

于是 an=13[2n(1)n]\displaystyle a_n=\frac{1}{3}[2^n-(-1)^n].

  1. 卡特兰数:一个 n×nn\times n 的方阵从 (0,0)(0,0) 走到 (n,n)(n,n),不经过对角线的方案数,记作 CnC_n

有如下关系:Cn=k=0nCnkCkC_n=\displaystyle\sum_{k=0}^nC_{n-k}C_k,构造 f(x)=n=0+Cnxnf(x)=\displaystyle\sum_{n=0}^{+\infty}C_nx^n,有

f2(x)=C02+(C0C1+C1C0)x+    xf2(x)+C0=f(x)    f(x)=114x2xf^2(x)=C_0^2+(C_0C_1+C_1C_0)x+\dots\implies xf^2(x)+C_0=f(x)\implies f(x)=\frac{1-\sqrt{1-4x} }{2x}
    f(x)=1{1+k=1+[2(2k2k1)]xk}2x=k=0+(2kk)xkk+1    Cn=(2nn)n+1\implies f(x)=\frac{1-\left\{1+\displaystyle\sum_{k=1}^{+\infty}\left[-2\begin{pmatrix}2k-2\\ k-1\end{pmatrix}\right]x^k\right\}}{2x}=\sum_{k=0}^{+\infty}\frac{\begin{pmatrix}2k\\k\end{pmatrix}x^k}{k+1}\implies\red{\boxed{C_n=\frac{\begin{pmatrix}2n\\n\end{pmatrix}}{n+1}}}