gfology学习1
Chapter 1
0.生成函数的简单介绍
生成函数是是序列和幂级数(函数)之间的纽带
生成函数能解决的问题:
- 找到序列第\(n\)项的精确公式
- 找到递推公式
- 找到序列的平均值和其他有用的属性
- 找到序列的渐进公式
- 证明单峰性、凸性等。许多组合数的序列都是单峰的
- 证明公式
1.简单的二项递推
考虑递推式\(a_{n+1}=2a_n+1\),(\(a_0=1\),\(n\ge 0\))
高中的做法:
现在考虑生成函数:
- 令\(A(x)=\sum_{n\ge 0}a_nx^n\),其中\(a_n\)是序列\(<a>\)的第\(n\)项\[A(x)=a_0+a_1x+a_2x^2+\cdots+a_nx^n+\cdots\\ 2xA(x)=\quad \quad 2a_0x+2a_1x^2+\cdots+2a_{n-1}x^n+\cdots\\ A(x)(1-2x)=a_0+(x+x^2+\cdots+x^n+\cdots)=0+\frac{x}{1-x}\\ A(x)=\frac{x}{(1-x)(1-2x)} \]因此\(A(x)\)就是这个函数的生成函数,但是我们需要展开成幂级数的形式\[\frac{x}{(1-x)(1-2x)}\\ =x\left\{\frac{2}{1-2x}-\frac{1}{1-x} \right\}\\ =\left\{2x+2^2x^2+2^3x^3+\cdots \right\}-\left\{x+x^2+x^3+\cdots \right\}\\ =(2-1)x+(2^2-1)x^2+(2^3-1)x^3+\cdots+(2^n-1)x^n\cdots \]这样幂级数的系数就和原序列的每一项一一对应了
2.稍微难一点的二项递推
考虑递推式\(a_{n+1}=2a_n+n\)
和上面的一样配式子,容易得到(事实上写出来前几项观察也容易得到)\(a_n=2^{n+1}-(n+1)\)
考虑生成函数
- 令\(A(x)\)为\(<a>\)的生成函数,\(A(x)=\sum_{n\ge 0}a_nx^n\)\[a_1+a_2x+a_3x^2+a_4x^3+\cdots=\frac{A(x)-a_0}{x}=\frac{A(x)-1}{x}\\ =(2a_0+0)+(2a_1+1)x+(2a_2+2)x^2+(2a_3+3)x^3+\cdots\\ =2(a_0+a_1x+a_2x^2+a_3x^3+\cdots)+(0+x+2x+3x+\cdots)\\ =2A(x)+\sum_{n\ge 0}nx^n\\ \frac{A(x)-1}{x}=2A(x)+\sum_{n\ge 0}nx^n \]现在考虑\(\sum_{n\ge 0}nx^n\)怎么求\[\sum_{n\ge 0}nx^n=\sum_{n\ge 0}x(\frac{d}{dx})x^n=x(\frac{d}{dx})\sum_{n\ge 0}x^n=x(\frac{d}{dx})\frac{1}{1-x}=\frac{x}{(1-x)^2} \]则\[\frac{A(x)-1}{x}=2A(x)+\frac{x}{(1-x)^2}\\ A(x)=\frac{2x^2-2x+1}{(1-x^2)(1-2x)} \]再利用有理分式分解\[A(x)=\frac{Ax}{(1-x)^2}+\frac{B}{(1-x)}+\frac{C}{1-2x}=\frac{-1}{(1-x)^2}+\frac{2}{1-2x} \]现在通过\(A(x)\)找到序列\(<a>\)的通项公式
\(\frac{2}{1-2x}\)的第\(n\)项是\(2\cdot 2^n=2^{n+1}\),\(\frac{1}{(1-x)^2}\)的第\(n\)项就是\(\sum_{n\ge 0}a_nx^n\)的第\(n+1\)项即\(n+1\),因为少了一个分子\(x\)。
故\(a_n=2^{n+1}-n-1\)
一些符号定义
令\(f(x)\)表示\(x\)的幂级数。则\([x^n]f(x)\)表示\(f(x)\)幂级数\(x^n\)项的系数
- \([x^n]e^x=\frac{1}{n!}\) \(\text{;}\) \([t^r]\left\{\frac{1}{1-3t}\right\}=3^r\) \(\text{;}\) \([u^m](1+u)^s=\binom{s}{m}\)
- \([x^n]\left\{ x^af(x)\right\}=[x^{n-\alpha}]f(x)\)
- \([\beta x^n]f(x)=(\frac{1}{\beta})[x^n]f(x)\)
生成函数求递推式方法
- 把幂级数用未知项表示(即不是初始条件)
- 利用递推式写出幂级数
- 这时得到两个等式,求出生成函数即可
3.三项递推
考虑斐波那契数列\(F_{n+1}=F_n+F_{n-1}\).(\(n\ge 1\text{;}F_0=0\text{;}F_1=1\))
- 令\(F(x)\)表示斐波那契数列的生成函数,即\(F(x)=\sum_{n\ge 0}F_nx^n\)\[F_2x+F_3x^2+F_4x^3+\cdots=\frac{F(x)-x}{x}\\ (F_1+F_0)x+(F_2+F_1)x^2+(F_3+F_2)x^3+\cdots\\ =(F_1x+F_2x^2+F_3x^3+\cdots)+(F_0x+F_1x^2+F_2x^3+\cdots)\\ =F(x)+xF(x)\\ \frac{F(x)-x}{x}=F(x)+xF(x)\\ F(x)=\frac{x}{1-x-x^2} \]因式分解,令\(r_{+}=\frac{1+\sqrt{5}}{2}\text{,}r_{-}=\frac{1-\sqrt{5}}{2}\)\[\frac{x}{1-x-x^2}=\frac{x}{(1-xr_{+})(1-xr_{-})}\\ =\frac{1}{r_{+}-r_{-}}\left(\frac{1}{1-xr_{+}}-\frac{1}{x-x_r{-}}\right)\\ =\frac{1}{\sqrt{5}}\left\{\sum_{j\ge 0}r_{+}^jx^j-\sum_{j\ge 0}r_{-}^jx^j\right\} \]故得到\(F_n=\frac{1}{\sqrt{5}}(r_{+}^n-r_{-}^n)\)
4.三项边值问题
给定一个递推式\(au_{n+1}+bu_{n}+cu_{n-1}=d_n\),(\(n=1,2,\cdots,N-1\text{;}u_0=u_N=0\))
其中\(N\),常数\(a,b,c\)和序列\(\{d_n\}_{n=1}^{N-1}\)已知。可以证明上述的等式唯一确定了序列\(\{u_n\}_{n=0}^{N}\)
- 令\(U(x)\)表示\(<u>\)的生成函数,\(D(x)\)表示\(<d>\)的生成函数。即\(U(x)=\sum_{i=0}^Nu_ix^i\),\(D(x)=\sum_{i=1}^{N-1}d_ix^i\)
根据递推式有
现在的问题就是不知道\(u_1\)和\(u_{N-1}\),但我们还是先求出\(U(x)\)是什么先
上式给了一种求\(u_1\)和\(u_{N-1}\)的方法,令\(r_{+}\)和\(r_{-}\)是二次多项式\(a+bx+cx^2\)的两个根,假设\(r_{+}\ne r_{-}\),得到
现在就是求解这个二元一次方程的问题(初中生问题)
5.两个独立变量
令\(f(n,k)\)表示从大小为\(n\)的集合中选出\(k\)个对象的方案数(就是组合数)。
容易知道有递推式\(f(n,k)=f(n-1,k)+f(n-1,k-1)\),\((f(n,0)=1)\)
- 定义\(B_n(x)=\sum_{k\ge 0}f(n,k)x^k\)
根据递推式,两边同时乘以\(x^k\)并对\(k\ge 1\)求和,得到
\(B_n(x)-1=(B_{n-1}(x)-1)+xB_{n-1}(x)\),(\(n\ge 1 \text{;}B_(x)=1\))
进一步得到
这就是二项式定理
现在同时考虑\(n\)和\(k\)的求和
进一步,上面计算\(B_n(x)\)是固定了\(n\)对\(k\),\(k\)是自由变量,现在考虑\(n\)为自由变量的情况,即考虑幂级数\(\sum_{n}\binom{n}{k}y^n\)
综上,我们有
另一类两独立变量问题
考虑把大小为\(n\)的集合划分为\(k\)的非空集合的方案数(斯特林数)。记作\(n \brace k\)。
递推式为
取定任意一个元素,这个元素显然可以把方案数分为不相交的两部分,一部分是这个元素自己放在一个集合中,于是变成了求大小\(n-1\)为集合划分为\(k-1\)个的方案数,一部分是这个元素不是单独一个集合,于是就先把大小为\(n-1\)的集合划分成\(k\)个,然后在考虑把这个元素放在哪一个集合中。
现在可以很自然地定义出我们需要的 3 个生成函数
这里我们先求解\(B_k(x)\),即先固定\(k\),因为这样比较好入手。将递推式两边同时乘以\(x^n\)并对\(n\)求和,得到
为了求得\({n\brace k}=[x^n]B_k(x)\),要把\(\frac{x^k}{(1-x)(1-2x)\cdots(1-kx)}\)因式分解,先考虑\(\frac{1}{(1-x)(1-2x)\cdots(1-kx)}\)
故
接下来考虑计算\(A_n(y)\),根据递推公式有
一直递推到\(A_0(y)\)得到
最后讨论\(Bella\)数,定义为
特别地,当\(M\)趋于\(\infty\)时,\(b(n)=\frac{1}{e}\sum_{r\ge 0}\frac{r^n}{r!}\)
- 记\(Bella\)数的生成函数为\(B(x)\),即\(B(x)=\sum_{n\ge 0}\frac{b(n)}{n!}x^n\)
则