定义
对于任意数列a0,a1,a2...an 即用如下方法与一个函数联系起来:
则称G(x)是数列的生成函数(generating function)。
例子
比较典型的是:
因为生成函数的x没有实际意义,我们可以任意取值。
(以下k为非负整数)
二项式定理:
k为任意实数,即定理可扩展 : (1+x)^(-k) = 1 + 2x + 3x^2 + 4*x^3 + ...
证明:
引理 : C(n,m) (从n里取m个数)当n<0, C(n,m) =(-1)^m * C(-n+m-1 ,m)(数学归纳法)
(1+x)^(-k) = (-x)^0 * C(-k,0) + (-x)^1 * C(-k,1) + (-x)^2 * C(-k,2) + .. + (-x)^k * C(-k,k)
C(-k,0) = 1 *C(k-1,0)
C(-k,1) = -1 * C(k,1)
...
发现负负抵消 , 即证。
例题:
n=x1+x2+x3+...+xk有多少个非负整数解?
分析:这道题是学排列与组合的经典例题了。把每组解的每个数都加1,就变成n+k=x1+x2+x3+...+xk的正整数解的个数了。教材上或许会出现这么一个难听的名字叫“隔板法”:把n+k个东西排成一排,在n+k-1个空格中插入k-1个“隔板”。答案我们总是知道的,
就是C(n+k-1,k-1)。它就等于C(n+k-1,n)。它关于n的生成函数是g(x)=1/(1-x)^k。这个生成函数是怎么来的呢?
其实,它就是(1-x)的-k次方。把(1-x)^(-k)按照刚才的牛顿二项式展开,我们就得到了x^n的系数恰好是C(n+k-1,n),因为C(-k,n)*(-x)^n=[(-1)^n*C(n+k-1,n)]*[(-1)^n*x^n]=C(n+k-1,n)x^n。
例题2:
求斐波拉契数列的通项公式。
f(i) = f(i-1) + f(i-2)
根据递推式,我们可以这样变化,显然有
然后自己脑补 。
https://www.cnblogs.com/zwfymqz/p/10511970.html 自己看。