当前课程知识点:组合数学 > 初识母函数 > 母函数与递推关系 > Hanoi问题(2)
有了这样的递推关系式之后
我们想利用母函数的方法来进行求解
那首先我们需要设计对应的母函数
这里我们想要求的实际上是h(n)
因此我们可以对应不同的n
去设计它对应的通项
从而得到它的母函数 也就是G(x)
G(x)它对应的xk次方的系数就应该是h(k)
因此它写出来就是G(x)等于h(1)x加上h(2)x平方
加h(3)x3次方 依次累加出去
下面呢 我们就给大家演示一下
怎么用母函数来求解对应的递推关系
我们已经有了汉诺塔对应的递推关系
那么我们希望通过母函数
来求解递推关系的通项表达
这时候 我们知道
对应于一个幂级表示幂级数来说
它同样可以做四则运算
因此母函数就像普通的代数式一样
可以进行加减乘除
那么这时候
我们把对应的汉诺塔的母函数写在这里
我们如果想要对它进行一定的四则运算
希望能够充分地利用起来这样的递推关系
这时候我们发现
这一项和这一项之间差了一个2
而这边对应的幂次是x的n次方
而这边对应的幂次是x的n减1次方
因此我们可以设计另外一项叫做2x乘以H(x)
这样的话 通过两个母函数进行相加减
我们可以通过利用递推关系消掉一些元素
例如说这里面我们可以看到左边的式子
变成了大H(x)减去2倍的xH(x)
而右边的每一项
如果按照幂次一一对应起来的话
会发现它们的系数恰巧就是对应的递推关系
比如说我们右端的第一项h(1)x 就是1x
而应的h(2)x平方减去2倍的h(1)x平方
它们的系数是h(2)减去2h(1)
正好是h(2)等于2倍的h(1)加1里面的部分项
因此这里的系数刚好应该等于1
同理h(3)减去2倍的h(2)也应该等于1
我们依此类推会发现
递推公式在这里面帮助我们进行了化简
因此右端项我们可以进一步地整理
变成了x加x平方加x3次方
这个式子由于我们知道1减x分之一
实际上等于1加x加x平方
因此这个式子我们将x提出来之后
就变成了x除以1减x
那么两端一整理就得到了
H(x)等于x除以1减2x乘以1减x
也许有些同学说
我想不到直接要去减掉2倍的xH(x)
是不是有更直观的方法呢
其实呢我们也可以直接按照母函数的定义
来寻找这个递推关系
比如说我们用另外一种方法
这里面我们知道对应于每一个x的k次方
都有h(x)和它对应
那么这样一个式子
它又有一定的递推关系
我们把每一项全部列在这里
会发现x平方对应的系数是h(2)
而h(2)根据递推关系
又等于2倍的h(1)加1
x3次方对应的系数是h(3)
它呢又等于2倍的h(2)加1
如果我把x平方乘以对面左右两项
x3次方也都乘以等式的左右两项
然后依次累加在一起
会得到什么呢 我们来分析一下
上面式子的左面全部累加在一起
实际上就是对应的母函数其中的一部分
缺了谁呢 缺了x的1次方对应的系数
因此左端项h(2)x平方加上h(3)x3次方 一直累加
等于大H(x)减去h(1)x
h1又等于1 因此H(x)减x就是左边的
而右边呢 它会被分成了两项
这里2倍的h(1)要乘以x平方
而2倍的h(2)要乘以x3次方
我们先看第一列
对于右端的第一项
我们可以看到h(1)本身对应的应该是x的系数
那么和这边乘的x平方多了谁呢
多了一个x
而前面又多了一个系数2
对应的这一项
也正好是h(2)对应的应该是x平方项
但是这里我类乘一个x3次方进来
因此它又比原来的母函数中多了一个2倍的x
这时候我们就会发现
其实右端的第一项2倍h(1)x平方加2h(2)x3次方
一直累加
就等于把每一项中间的2x提出来之后
剩下的就是h(1)x加h(2)x平方
一直累加 其中的这一项
刚好就是我们所说的母函数
因此右端的第一项
直接可以整理为2倍的x乘以H(x)
那右边的第二项应该怎么整理呢
这里它成了x平方x3次方x4次方
依次累乘下去
因此右端的第二项就等于x平方加x3次方
一直累加 等于把x平方提出来
剩下的就是1减x分之一
这时候这三项进行整理的话
我们就会发现H(x)减去x等于2倍的x乘以H(x)
加上x平方除以1减x
整理之后
同样得到了上面的方法做出来的
一模一样的一个分式表达
这就是对应的汉诺塔它的母函数一个分式表达
但是这并没有结束
我们还需要去求
它怎么得到每一项 xk次方前面的系数
才是对应的计数序列
下面我们就来分析一下
对应于母函数它应该表达成
h(k)乘以x的k次方 我们要寻求h(k)的大小
现在我们已经知道了
母函数是等于x除以1减x乘以1减2x的
那么我们下面该怎么做呢
我们希望能够把这个式子转化成一些
我们知道的(分)通项表达
如何从一个母函数得到对应的序列呢
我们要把这样一个分式
化成部分分式的方法
比如说假设H(x)由于它的分母是1减x乘以1减2x
因此我可以把它写成
A除以1减x加上B除以1减2x的形式
A和B作为待定系数
我希望可以进一步的求解
这里面我们就把分母进行合并之后
分子就变成了A乘以1减2x加上B乘以1减x
进一步的整理
分母变成了1减x 1减2x
分子是A加B作为常数项
x前面的系数是2A加B
那这个分母就应该和原来的分母是一一对应的
因此我们知道可以联立
A加B减去2倍的A加Bx
应该等于x
这就意味着它的常数项A加B
应该等于0
而对应的系数x1次方的系数
负2A减B应该等于1
这样两个待定系数
完全可以通过这个方程组直接求解出来
得到A等于负1 B等于1
代进来就可以知道
大H(x)就等于1除以1减2x减去1减x
那么这时候我们就知道了
这个式子我们完全可以把它打开成
1加2x加2平方x平方加2的3次方x3次方
而这个式子可以变成1加x加x平方 一直累加
那它们的系数整理在一起就正好是
2的k次方减1
而这个xk次方前面的系数
不正好是我们想要求的汉诺塔的复杂度嘛
也就是说h(k)实际上就等于2的k次方减1
这时候我们想要知道
要挪动64个盘子
实际上h(64) 答案就应该是2的64次方减1
得这么大一个数值
经过计算我们发现
h(64)也就是说64个圆盘
最终从A挪到C
实际上复杂度是这么大
大到我基本上已经念不出来了
但是我们如果假设
一秒钟可以挪动一个盘子的话
这到底需要多久才能到达世界末日呢
我们算了一下
实际上是5800亿年
才能把64个盘子从A柱挪到C柱
因此我想大家放心了吧
-什么是组合数学
--什么是组合数学
--讨论题
-最精巧的排列——幻方
--幻方
-漫谈组合数学--最精巧的排列——幻方
-苦难的羊皮纸卷
--羊皮纸卷
-苦难的羊皮纸卷--作业
-你的手机密码安全吗
-漫谈组合数学--你的手机密码安全吗
-暴力枚举和抽象转换
--世界杯引出的问题
--世界杯引出的问题--练习
--一一对应
--七桥问题
--小结
--讨论题
-大家谈组合数学(1)
--采访武永卫老师
-第一周作业
--作业说明
--H
--U
--G
--作业讨论区说明
-第一周演示程序
--程序讨论区说明
--幻方生成器
--换方计数
--屏幕解锁方案数
--欧拉路计数
--共享程序
-加减乘除来计数
--计数的基本法则
-排列还是组合
--排列还是组合
--小乒乓球的组合之旅--排列还是组合
-各种各样的排列
--圆排列和项链排列
--圆排列和项链排列--习题
--多重排列
--多重排列--练习
-多样的组合
--可重组合
--不相邻组合
--小乒乓球的组合之旅--多样的组合
-钟声里的全排列
--钟声里的全排列
--钟声里的全排列
--字典序法
--SJT算法
-第二周作业
--H
--U
--G
--思考题
--公式测试
--作业讨论区说明
-第二周演示程序
--程序讨论区说明
--全排列生成
--组合生成器
--共享程序
-参考资料:Stirling估计式
-母函数是函数的母亲吗
--母函数的定义(1)--练习
--母函数的定义(2)--练习
-母函数的简单应用
--初识母函数--母函数的简单应用
-整数拆分
--整数拆分(1)
--整数拆分(2)
-Ferrers图像
--Ferrers图像--作业
-母函数与递推关系
--母函数能做什么
--偶数个5怎样算
--母函数小结
-大家谈组合数学(2)
-第三周作业
--H
--U
--G
--思考题
--作业讨论区说明
-第三周演示程序
--程序讨论区说明
--整数拆分
--汉诺塔
--共享程序说明
-Fibonacci数列
--线性常系数递推关系--Fibonacci数列
-Fibonacci数列的应用
--桌布魔术
--桌布魔术--练习
--艾略特波浪曲线
-线性常系数齐次递推关系
--定义
--特征多项式
--线性常系数递推关系--线性常系数齐次递推关系
-说“数”解题
-第四周作业
--H
--U
--G
--GT思考题
--作业讨论区说明
-第四周演示程序
--程序讨论区说明
--程序共享说明
-爆笑花絮
--爆笑花絮
-参考资料:K线分析中的Fibonacci 相关理论
-Catalan数
--计算机界的精灵
--神奇的序列--Catalan数
-指数型母函数
--指数型母函数
--神奇的序列--指数型母函数
-错排
--错排1
--错排2
--神奇的序列--错排
-Stirling数
--神奇的序列--Stirling数
-母函数小结
--母函数小结
-大家谈组合数学(3)
-第五周作业
--H
--U
--G
--思考题
--作业讨论区说明
-第五周演示程序
--讨论区说明
--Catalan数
--程序共享
-且容且斥
--容斥原理
--容斥原理的证明
--容斥原理和鸽巢原理--且容且斥
-容斥原理的精妙
-回忆过去,容斥新解
--容斥原理和鸽巢原理--回忆过去,容斥新解
-鸽子抢巢
--鸽巢原理
--鸽巢原理--练习
--鸽巢原理的应用(1)--练习
-看得见摸得着的鸽巢
--韩信点兵
--中国剩余定理
--容斥原理和鸽巢原理--看得见摸得着的鸽巢
-6人行和Ramsey数
--6人行
--Ramsey数
--小结
-第六周作业
--H
--U
--G
--GT
--作业讨论区说明
-第六周演示程序
--讨论区说明
--程序共享说明
-可以转的世界
--可以转的世界
--可以转的世界--练习
--伽罗华与群
--群的定义
--群的定义--练习
--群的一些概念
-置换群
--置换群
--群--置换群
--共轭类
--对换
--对换--练习
--置换群的应用
-Burnside引理
--着色问题的等价类
--Burnside引理--作业
-闲话群
-第七周作业
--H
--U
--G
--作业讨论区说明
-Burnside引理的困境
-从Burnside到Polya
--Polya定理
-立方体旋转
--立方体旋转(1)
--立方体旋转(2)
--立方体旋转--作业
--立方体旋转(3)
--立方体旋转--作业
--立方体旋转(4)
-母函数型Polya定理
--Polya定理--母函数型Polya定理
-图的计数
--图的计数
-总结
--本章小结
-第八周作业
--H
--U
--G
--GT
--作业讨论区说明
-大家谈组合数学(4)
--采访黄连生老师
-组合之美
--组合之美之计数
-组合之美之线性常系数递推关系
-组合之美之多样的序列
-组合之美之鸽巢原理
-组合之美之转动群与染色
-采访邹欣
--采访邹欣1
--采访邹欣2
-知识点串串烧
--知识点串串烧
-期末测验--期末测验