第一例
最近我被问到这样一个问题:
给定非负整数 n, 考虑(1−x)3(1+x)n+1=k=0∑∞akxk.求 a0+a1+⋯+an.
通过具体的数值计算, 我们能迅速找到, 对非负整数 n, 这个数列对应 OEIS A055585, 不过在那里我们并没有找到其生成函数的计算方式的细节, 让我们在这里进行详细的解读.
首先, 要计算展开中 a0+⋯+an 的系数和, 我们应当考虑将 ∑akxk 乘上 (1−x)−1=1+x+x2+⋯, 这样一来, 其系数变成 a0,a0+a1,a0+a1+a2,⋯, 所以换言之, 我们现在要考虑的是下列表达式的 xn 系数, 也就是bn:=(1−x)4(1+x)n+1[xn]=2πi1∫C(1−x)4(1+x)n+1xn+1dx.其中 C 是一个充分靠近 0 的, 绕其一周的围道.
现在我们来证明 bn 符合四项递推 (λ−2)4, 计算得到bn+4−8bn+3+24bn+2−32bn+1+16bn=2πi1∫C(1−x)4(1+1/x)n+1⋅(1+1/x−2)4dx=2πi1∫Cx41⋅(1+1/x)n+1dx.实际上, 当 n=−4,−3,−2 时上述表达式取值 1,−2,1, 其余整数 n 处均为 0 (不难检查 n>−1 时不会产生 1/x 项, 而 n<−4 时 bn+4=⋯=bn=0). 由此可知n=0∑∞bnyn=(1−2y)41−2y+y2=41(1−2y)4(1−2y+1)2=4(1−2y)21+2(1−2y)31+4(1−2y)41.这表明bn=2n(41(1n+1)+21(2n+2)+41(3n+3))=242n(n+1)(n+3)(n+8).
第二例
计算中心三项式数an:=[xn](1+x+x2)n.
仍然可以计算确定它就是 OEIS A002426. 但是让我们手动证明它具有我们想要的生成函数.
这次我们来演示直接计算留数. 仍然是考虑一个足够小的围道 C, 得到an=2πi1∫Cxn+1(1+x+x2)ndx.这时取 ∣y∣ 充分小 (依赖于 C 的选取), 可以计算得到收敛的生成函数, 同时因为绝对收敛性还可以交换积分和求和的次序, 就得到n=0∑∞anyn=2πi1n=0∑∞∫Cxn+1(1+x+x2)nyndx=2πi1∫Cx−(1+x+x2)ydx.注意到当 ∣y∣ 充分小时, 分母的两根 t±:=(1−y±1−2y−3y2)/2y 中其一趋于 0, 另一趋于 ∞. 所以计算留数可知, 在趋于 0 的 t− 处的留数 1/(y(t+−t−))=(1−2y−3y2)−1/2 就是最终的结果.
很明显这一计算可以被推广为 [xn](a+bx+cx2)n, 最后会得到生成函数 (1−2by+(b2−4ac)y2)−1/2. 即便有退化情况出现, 例如 (a,b,c)=(1,2,1), 此时即研究 [xn](1+x)2n=(n2n) 的生成函数, 也能得到正确的 (1−4y)−1/2.
第三例
前一段时间看到一个怪东西. 假设我们用 U(a,b) 表示一个均匀取 [a,b] 间整数的随机变量. 记Xn:=U(0,U(1,⋯,U(n−1,n)⋯)).求 Xn 依分布收敛的极限.
实际上我们可以转换看法, 本质上说, X0=0, Xn+1:=U(0,1+Xn). 假设 Xn 的生成函数为 fn(x), 即若 pnk:=P[Xn=k], 则定义 fn(x):=∑kpnkxk. 现在对于 Xn=k 的情形, 此时 Xn+1 将会是 0,⋯,k+1 的均匀分布. 所以从生成函数上看, fn 的项 xk, 它会被分摊到下一个生成函数 fn+1 的 k+21(x0+x1+⋯+xk+1)=k+211−x1−xk+2, 所以fn+1(x)=1−x∫x1tfn(t)dt.由泛函技术我们知道 fn 的极限函数存在唯一. 对于上述算子作用下稳定的 f(x), 其满足微分方程dxd((1−x)f(x))+xf(x)=0⟹(1−x)(f′(x)−f(x))=0.由此我们知道 f(x)=cex, 结合概率和为 1 的条件 f(1)=1 就得到 c=e−1, 所以这意味着最后的极限分布 X 为 Poisson 分布 Poi(1).
另外, 即便从概率论视角, 这个方法也有其道理, 我们可以通过研究分布的特征函数来代替生成函数. 此时我们看到了一个 Markov 过程, 它的收敛性由一些概率论事实保证. 从这个角度求它的平稳分布就应当满足: ⎩⎨⎧p0=2p0+3p1+4p2+⋯p1=2p0+3p1+4p2+⋯p2=3p1+4p2+5p3+⋯p3=4p2+5p3+6p4+⋯⋯⟹⎩⎨⎧p0−p1=0p1−p2=2p0p2−p3=3p1p3−p4=4p2⋯.由此解出 pn=p0/n! 并不困难.
第四例
计算下面的极限: n→+∞limloglogn1k=1∑n(kn)(−1)klogk.
简单观察问题, 会发现它要计算的东西是 log 序列不断差分的结果, 但是真的这样去研究问题就上当了, 计算它最有效的方法就是使用类似生成函数的看法. 这种形状东西肯定可以被写成好看的积分. 注意到:
∫01m=1∑k−1x+m1dx=m=1∑k−1(log(m+1)−logm)=logk.
这样我们就能把原问题中的求和写出来
k=1∑n(kn)(−1)klogk=∫01m=1∑n−1x+m1k=m+1∑n(kn)(−1)kdx=∫01m=1∑n−1x+m(−1)m−1(mn−1)dx=∫01(x1−x(x+1)⋯(x+n−1)(n−1)!)dx.
这里最后一个等号可以通过裂项看出来, 总而言之这个积分现在可以被整理为∫01(x1−Γ(n+x)Γ(n)Γ(x))dx=∫01x1(1−Γ(n+x)Γ(n)Γ(x+1))dx.然后利用在 0<x<1 时 Γ 函数的展开: Γ(x+1)=1−γx+2ζ(2)+γ2x2+O(x3).还有 n 很大时如下的展开: Γ(n+x)Γ(n)=n−x(1+O(n1)).最后结合积分表达式∫01x1−n−xdx=loglogn+γ+O(n1),我们实则可以得到如下的渐近表达式k=1∑n(kn)(−1)klogk=loglogn+γ+lognγ−12log2nπ2+6γ2+O(log3n1).
本例的技术来自
Mellin transforms and asymptotics: Finite differences and Rice’s integrals. by Philippe Flajolet & Robert Sedgewick.