当前课程知识点:组合数学 > 初识母函数 > 母函数与递推关系 > Hanoi问题(1)
所谓递推关系Recurrence Relation
它也被称为是差分方程
那么它的定义是说
我想要表示一个序列的方程式
序列中间的每一项定义是前若干项的表达式
我们拿一个很经典的例子给大家讲解一下
也就是汉诺塔问题
汉诺塔问题是一个什么样的传说呢
相传在大梵天创造世界的时候
他呀做了三根金刚柱子
而在每个柱子下他都从下到上
依次垒着64个黄金圆片
而这64个黄金圆片呢 大小不一
于是他定了这样一个规则
大梵天要求
在这三个金刚柱子之间挪动圆盘
但是你不能随便地去放
你必须要求在任意时刻
我都保证他们的圆盘
从小到大是一个三角形的排列
你每次挪动的时候
可以借助另外一个柱子
来实现两两之间的挪动
那么这是一个非常有趣的问题
而且呢这个问题关乎到我们世界的存亡
传说中说移动完毕之日 当是世界毁灭之时
首先大家先不要疑虑
其实呢这个问题呢
和大梵天一毛钱关系都没有
因为这个问题实际上是一位法国的数学家
在十九世纪的时候生造出来的
他就是为了表现递推关系
但是它到底真的是什么时候
才会到世界毁灭之时呢
我们需要先找一个方法
能够实现它的挪动
并且计算到底多长时间才能挪完
好 那我们就来分析一下
怎么样才能实现从一个圆柱子
挪到另外一个圆柱子
而且随时随地我去看的时候
任何一个柱子上都保持着
从小到大的一个规则形状呢
首先我们从最简单的形式开始
假如只有两个盘子的话
在这三个柱子之间
从A挪到C 怎么实现呢
其实很简单
我们假设只有两个盘子的话
那么首先第一步我可以把上面这个盘子
从A挪到B
之后呢 我再把大盘子从A挪到C
随后最后一步
只要把小盘子从B挪到C就可以了
所以对于两个盘子来说
我们是有可行的方法的
我们已经知道了两个盘子的挪动方法
那么我们就可以通过递推
来设计出来对于n个盘子挪动方法是多少
这里面为了分析它的复杂度
我们假设挪动n个盘子的复杂度是h(n)
那么这时候假设我们已经知道了
有n减1个盘子的时候该如何挪动
我们来分析如果是n个盘子该怎么样
对于n个盘子
如果它们起始位置都在A的情况下
我们同样可以把它分成两部分
一部分是n减1的盘子
一部分是最大的那个盘子
那这个时候
我们同样可以分析两个盘子的情况
首先第一步我先把上面的n减1个盘子
根据已知的方法利用C这个空格子
挪动到B上 这时候我们的复杂度
挪动了n减1个盘子
复杂度是h(n)减1
接下来一步呢 我们把最大的盘子
从A挪到C 实际上只操作了一步 也就是h(1)
最后一步呢我们把B上的n减1个盘子
经过柱子A可以挪动到C上
它的复杂度呢也是h(n-1)
这时候我们已经完成了n个盘子的挪动
复杂度整个是三步复杂度之和
也就是h(n-1) h1和 h(n-1)之和
这时候我们已经设计出来一个递推关系
也就是h(n)等于2倍的h(n-1)加1
初始条件其实h1是等于1的
-什么是组合数学
--什么是组合数学
--讨论题
-最精巧的排列——幻方
--幻方
-漫谈组合数学--最精巧的排列——幻方
-苦难的羊皮纸卷
--羊皮纸卷
-苦难的羊皮纸卷--作业
-你的手机密码安全吗
-漫谈组合数学--你的手机密码安全吗
-暴力枚举和抽象转换
--世界杯引出的问题
--世界杯引出的问题--练习
--一一对应
--七桥问题
--小结
--讨论题
-大家谈组合数学(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
-知识点串串烧
--知识点串串烧
-期末测验--期末测验