生成函数(TBC)

生成函数

生成函数 (Generating Function) 的应用简单来说在于研究未知(通项)数列规律,用这种方法在给出递推式的情况下求出数列的通项。

对于一个数列 aa,称f(x)=i=0naixif(x)=\sum_{i=0}^{n}{a_ix^i}是数列 aa普通生成函数 (OGF)g(x)=i=0nai×xii!g(x)=\sum_{i=0}^{n}{a_i\times\frac{x^i}{i!}}是数列 aa指数生成函数 (EGF)

我们总是认为生成函数是收敛的

本局对战的剩余时间内,所有未加上标的求和符号,上标均为

常见的普通生成函数

  1. nN\forall n\in\N^*i=0nxi=1xn+11x\sum_{i=0}^{n}{x^i}=\frac{1-x^{n+1}}{1-x}

证明:S=i=0nxiS=\sum_{i=0}^{n}{x^i}xS=i=1n+1xixS=\sum_{i=1}^{n+1}{x^i}所以(x1)S=xn+11S=xn+11x1=1xn+11x\begin{aligned}(x-1)S&=x^{n+1}-1\\ S&=\frac{x^{n+1}-1}{x-1}\\ &=\frac{1-x^{n+1}}{1-x}\end{aligned}
得证。

  1. i=0xi=11x\sum_{i=0}^{}{x^i}=\frac{1}{1-x}

证明:S=i=0xiS=\sum_{i=0}{x^i}xS=i=1xixS=\sum_{i=1}{x^i}所以(1x)S=1S=11x\begin{aligned}(1-x)S&=1\\ S&=\frac{1}{1-x}\end{aligned}
得证。

  1. i=0(i+1)xi=(i=0xi)2=1(1x)2\sum_{i=0}^{}{(i+1)x^i}=(\sum_{i=0}^{}{x^i})^2=\frac{1}{(1-x)^2}

证明: 先证明 nN\forall n\in\N^*(i=0nxi)2=(i=0n(i+1)xi)+S...()(\sum_{i=0}^{n}{x^i})^2=(\sum_{i=0}^{n}{(i+1)x^i})+S\quad...(*)其中 S=(i=0n1(ni)xn+i+1)S=(\sum_{i=0}^{n-1}{(n-i)x^{n+i+1}})

f(x)=i=0xif(x)=\sum_{i=0}{x^i} [xn]f(n)[x^n]f(n) 表示多项式 f(n)f(n)xnx^n 项之系数。则(i=0nxi)2=(i=0nxi)(i=0nxi)=[i=0n(j,ij[0,i][xj][xij])xi]+S...(1)\begin{aligned}(\sum_{i=0}^{n}{x^i})^2&=(\sum_{i=0}^{n}{x^i})·(\sum_{i=0}^{n}{x^i})\\ &=[\sum_{i=0}^{n}·(\sum_{j,i-j\in[0,i]}{[x^j][x^{i-j}]})·x^i]+S\quad...(1)\end{aligned}
因为 ini\leq n,所以有且仅有 i+1i+1j[0,n]j\in[0,n] 使 j,ij[0,i]j,i-j\in[0,i]

所以(i=0nxi)2=[i=0n(i+1)xi]+S\begin{aligned}(\sum_{i=0}^{n}{x^i})^2&=[\sum_{i=0}^{n}{(i+1)x^i}]+S\end{aligned}
()(*) 式得证。
nn\rightarrow\infty 使原命题得证。

  1. i=0(x)i=11+x\sum_{i=0}^{}{(-x)^i}=\frac{1}{1+x}

证明:x=xx=-x 并将原式代入 命题2 即可。

  1. mN\forall m\in\N^*1(1x)m=n=0Cn+m1m1xn\frac{1}{(1-x)^m}=\sum_{n=0}^{}{C_{n+m-1}^{m-1}x^n}

证明: 易知 mN\forall m\in\N^*(i=0mxi)m=1(1x)m(\sum_{i=0}^{m}{x^i})^m=\frac{1}{(1-x)^m}

推广 (1)(1),得(i=0nxi)m=[i=0n({aj}[0,n],j[1,m],aj=ik=0j[xak])]+S(\sum_{i=0}^{n}{x^i})^m=[\sum_{i=0}^{n}·(\sum_{\{a_j\}\in[0,n],j\in[1,m],\sum{a_j}=i}{\prod_{k=0}^{j}{[x^{a_k}]}})]+S
j,k\forall j,k 都有 [ajk]=1[a_j^k]=1,所以只需证明 有且仅有 Ci+m1m1C_{i+m-1}^{m-1}{ai}\{a_i\} 使 aj=i\sum a_j=i

考虑连续的一行 ii 个小球,你需要在 m1m-1 组相邻两个球之间各放一个隔板,将这 ii 个小球分成 mm 份(第 jj 份即为 aja_j)。因为 aja_j 可能为零,也就是说隔板可能重叠。所以方案数为 Ci+m1m1C_{i+m-1}^{m-1}。这样我们就证明了有且仅有 Ci+m1m1C_{i+m-1}^{m-1}{ai}\{a_i\} 使 aj=i\sum a_j=i。原命题得证。

例 1

今有 aa11 元硬币,bb22 元硬币,cc55 元硬币。求一个最小的、不能用这些硬币拼出的面值。1a,b,c1031\leq a,b,c\leq 10^3


f(x)=i=0axig(x)=i=0bx2ih(x)=i=0cx5i\begin{aligned}f(x)&=\sum_{i=0}^{a}{x^i}\\ g(x)&=\sum_{i=0}^{b}{x^{2i}}\\ h(x)&=\sum_{i=0}^{c}{x^{5i}}\end{aligned}f(x)g(x)h(x)f(x)*g(x)*h(x) 各个位的系数就表示拼出这个面值的方案数,答案就是这个卷积的系数为零的最低位。

例 2

今有 A、B 两个超市,价格为 ii 的商品各有 ii 件。求从两个超市各买一个商品,恰好花 nn 元的方案数。


生成函数f(x)=(i=1ixi)2=x2(i=0(i+1)xi)2=x2(1x)4=x2i=0Ci+33xi\begin{aligned}f(x)&=(\sum_{i=1}{ix^i})^2\\ &=x^2·(\sum_{i=0}{(i+1)x^i})^2\\ &=\frac{x^2}{(1-x)^4}\\ &=x^2·\sum_{i=0}{C_{i+3}^{3}{x^i}}\end{aligned}

所以,[xn2](i=0Ci+33xi)=Cn+13[x^{n-2}](\sum_{i=0}{C_{i+3}^{3}{x^i}})=C_{n+1}^{3}。此即为答案。

例 3

求函数f(x)=i=0i2xif(x)=\sum_{i=0}{i^2x^i}的生成函数。


nN\forall n\in\N^*n2=i=1n(2i1)n^2=\sum_{i=1}^{n}{(2i-1)}
f(x)=i=0i2xi=i=1j=i(2i1)xj=i=1j=i+1(2i1)xj+[i=1(2i1)xi]=i=1j=i+1(2i1)xj+[2×x(1x)211x+1]\begin{aligned}f(x)&=\sum_{i=0}{i^2x^i}\\ &=\sum_{i=1}\sum_{j=i}(2i-1)x^j\\ &=\sum_{i=1}\sum_{j=i+1}(2i-1)x^j+[\sum_{i=1}(2i-1)x^i]\\ &=\sum_{i=1}\sum_{j=i+1}(2i-1)x^j+[2\times\frac{x}{(1-x)^2}-\frac{1}{1-x}+1]\end{aligned}
S=2×x(1x)211x+1=x2+x(1x)2\begin{aligned}S&=2\times\frac{x}{(1-x)^2}-\frac{1}{1-x}+1\\ &=\frac{x^2+x}{(1-x)^2}\end{aligned}f(x)=i=1j=i+1(2i1)xj+S=i=1(2i1)(j=1xjj=1ixj)+S=i=1(2i1)(11x1xi+1xx1)+S=i=1(2i1)xi+11x+S=11x(2×i=1ixi+1i=1xi+1)+S\begin{aligned}f(x)&=\sum_{i=1}\sum_{j=i+1}(2i-1)x^j+S\\ &=\sum_{i=1}(2i-1)(\sum_{j=1}x^j-\sum_{j=1}^{i}x^j)+S\\ &=\sum_{i=1}(2i-1)(\frac{1}{1-x}-1-\frac{x^{i+1}-x}{x-1})+S\\ &=\sum_{i=1}(2i-1)·\frac{x^{i+1}}{1-x}+S\\ &=\frac{1}{1-x}(2\times\sum_{i=1}i·x^{i+1}-\sum_{i=1}x^{i+1})+S\end{aligned}
i=1ixi+1=i=1(i+1)xi2i=1xi=1(1x)212×x1x=x2(1x)2i=1xi+1=11x1x=x21x\begin{aligned}\sum_{i=1}{i·x^{i+1}}&=\sum_{i=1}{(i+1)·x^i}-2\sum_{i=1}x^i\\ &=\frac{1}{(1-x)^2}-1-2\times\frac{x}{1-x}\\ &=\frac{x^2}{(1-x)^2}\\ \sum_{i=1}x^{i+1}&=\frac{1}{1-x}-1-x\\ &=\frac{x^2}{1-x}\end{aligned}
所以f(x)=11x(2×x2(1x)2x21x)+S=x2+x(1x)3\begin{aligned}f(x)&=\frac{1}{1-x}(2\times\frac{x^2}{(1-x)^2}-\frac{x^2}{1-x})+S\\ &=\frac{x^2+x}{(1-x)^3}\end{aligned}

Catalan (卡特兰)数

h(0)=0,h(1)=1,h(n)=i=0n1h(i)h(ni1)(n2)h(0)=0,h(1)=1,\\ h(n)=\sum_{i=0}^{n-1}{h(i)·h(n-i-1)}\quad(n\geq2)hhCatalan 数

尝试用生成函数推导 Catalan 数的通项公式。

h(x)h(x) 的生成函数为 f(x)f(x)。则f(x)=i=0(j=0f(j)f(ij1))xi+1=1+xi=0j=0i1f(j)f(ij1)xn1=1+xf2(x)\begin{aligned}f(x)&=\sum_{i=0}{(\sum_{j=0}f(j)·f(i-j-1))x^i}+1\\ &=1+x\sum_{i=0}{\sum_{j=0}^{i-1}{f(j)·f(i-j-1)x^{n-1}}}\\ &=1+x·f^2(x)\end{aligned}
也就是说f(x)=1+xf2(x)f(x)=1+x·f^2(x)f(x)=1±14x2xf(x)=\frac{1±\sqrt{1-4x}}{2x}f(0)=1f(0)=1 舍去+号,所以f(x)=114x2xf(x)=\frac{1-\sqrt{1-4x}}{2x}
因为 14x=(14x)12\sqrt{1-4x}=(1-4x)^{\frac12},由 广义二项式定理14x=i=0Ci12(4x)i\sqrt{1-4x}=\sum_{i=0}{C_{i}^{\frac12}(-4x)^i}
Cn12=12(121)(12n+1)n!=(1)n1×1×1×3××(2n3)2nn!=(1)n1(2n2)!22n1n!(n1)!14x=2i=0(2i2)!i!(i1)!xif(x)=i=0(2i)!i!(i+1)!xi\begin{aligned}C_{n}^{\frac12}&=\frac{\frac12(\frac12-1)···(\frac12-n+1)}{n!}\\ &=(-1)^{n-1}\times\frac{1\times1\times3\times···\times(2n-3)}{2^nn!}\\ &=\frac{(-1)^{n-1}(2n-2)!}{2^{2n-1}n!(n-1)!}\\ \sqrt{1-4x}&=-2\sum_{i=0}{\frac{(2i-2)!}{i!(i-1)!}x^i}\\ f(x)&=\sum_{i=0}{\frac{(2i)!}{i!(i+1)!}x^i}\end{aligned}
所以h(n)=(2n)!n!(n+1)!h(n)=\frac{(2n)!}{n!(n+1)!}

常见的指数生成函数

  1. i=0xii!=ex\sum_{i=0}{\frac{x^i}{i!}}=e^x
  2. 偶数项求和。i=0x2i(2i)!=ex+ex2\sum_{i=0}{\frac{x^{2i}}{(2i)!}}=\frac{e^x+e^{-x}}2
  3. 奇数项求和。i=0x2i+1(2i+1)!=exex2\sum_{i=0}{\frac{x^{2i+1}}{(2i+1)!}}=\frac{e^x-e^{-x}}2

可以发现,它们与 OGF 最大的区别在于阶乘。所以,EGF 常用于解决与排列有关的问题。

例 4

1,2,3,41,2,3,4nn 个方块染色,求 1,21,2 颜色染的方块数为偶数的方案数。

写出 1,21,2 的生成函数f(x)=i=0x2i(2i)!f(x)=\sum_{i=0}{\frac{x^{2i}}{(2i)!}}
3,43,4 的生成函数g(x)=i=0xii!g(x)=\sum_{i=0}{\frac{x^i}{i!}}
h(x)=f2(x)g2(x)=(i=0x2i(2i)!)2(i=0xii!)2=(ex+ex2)2e2x=e4x+2e2x+14=14+i=0(4i+2n+14)xii!\begin{aligned}h(x)&=f^2(x)*g^2(x)\\ &=(\sum_{i=0}{\frac{x^{2i}}{(2i)!}})^2·(\sum_{i=0}{\frac{x^i}{i!}})^2\\ &=(\frac{e^x+e^{-x}}2)^2·e^{2x}\\ &=\frac{e^{4x}+2e^{2x}+1}4\\ &=\frac14+\sum_{i=0}(\frac{4^i+2^{n+1}}4)\frac{x^{i}}{i!}\end{aligned}
所以[xn]h(x)=4n+2n+14[x^n]h(x)=\frac{4^n+2^{n+1}}4
(To Be Continued)

posted @ 2019-07-01 15:26  TeacherDai  阅读(251)  评论(0)    收藏  举报