母函数与递推关系(recurrence relation)
1.递推关系定义
递推关系即差分方程,是一种递推的定义一个序列的方程式,序列的每一项定义为前若干项的函数。
2.母函数与递推关系
常见泰勒展开
(1−ax)−1=1+ax+a2x2+⋯求母函数(1−x)(1−2x)2−3x的递推关系?
(1−x)(1−2x)2−3x=1−x1+1−2x1=k=0∑∞xk+k=0∑∞2kxk=k=0∑∞(1+2k)xk得到 (1−x)(1−2x)2−3x是序列f(k)=2k+1的母函数。
因为:f(k)=2k+1 (1)所以:f(k−1)=2k−1+1 (2)(1)式-(2)式乘2:f(k)−2f(k−1)=−1所以得到递推式:f(k)=2f(k−1)−1
母函数 (1−x)(1−2x)2−3x
部分分式分解
(1−ax)−1=1+ax+a2x2+⋯
数字序列
f(k)=2k+1递推序列
f(k)=2f(k−1)−1
3.HANOI问题
- 大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。
- 大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。
- 在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
可以通过两个盘子的挪动方法递推出n个盘子的挪动方法。
假设挪动n个盘子的复杂度为h(n).
分为两部分,前n−1个盘子复杂度为h(n−1),和最大一个盘子n。
n-1个盘子的转移算法已经从确定复杂度为h(n-1)
把A下面一个圆盘移到C上:h(1)
把B上的n-1个圆盘经过A转移到C上:h(n-1)
复杂度为三步之和
递推关系
h(n)=2h(n−1)+1,h(1)=1,h(0)=0
3.HANOI问题与母函数
-
求HANOI问题对应的母函数?
已知递推关系 h(n)=2h(n−1)+1,h(1)=1,h(0)=0因为: H(x)=h(1)x+h(2)x2+h(3)x3+⋯(1)2xH(x)= 2h(1)x2+2h(2)x3+2h(3)x4+⋯(2)因为:
h(2)−2h(1)=1,h(3)−2h(2)=1,h(4)−2h(3)=1⋯所以(1)式-(2)式:
(1−2x)H(x)=h(1)x+x2+x3+x4+⋯已知:
h(1)=1所以: (1−2x)H(x)=x+x2+x3+x4+⋯由泰勒展开可得:
(1−2x)H(x)=1−xx得到母函数:
H(x)=(1−x)(1−2x)x化为部分分式展开得:
H(x)=1−2x1−1−x1由泰勒展开可得:
H(x)=(1+2x+22x2+23x3+⋯)−(1+x+x2+x3+⋯)所以最终母函数结果为:
H(x)=k=1∑∞(2k−1)xk2k−1即h(k)HANOI的复杂度。
-
那么挪动64个圆盘,1s挪动一次需要多长时间挪动成功?
计算如下图: