汉诺塔递归算法
来源:互联网 发布:mac pro玩游戏怎么样 编辑:程序博客网 时间:2024/05/22 13:31
大学的时候专业课程很差,指导大二学习算法设计的时候,发现专业课里比较有趣的一门。专心学习了一学期
最近在学习python发现了一个递归算法很迷茫,遂研究了一下。
简单来说明一下:首先汉诺塔的规则是1、每次移动一块 2、小木块只能放在大木块上 3、将所有木块从A柱子移动C柱子木块上
用几个变量和常量来表示 n表示一共有多少木块 A、B、C分别表示柱子
那么如果n=1木块 这个就是好说,移动的方式就是 A---->C
n=2 移动的方式就是 A---->B 、A---->C 、B---->C
n=3 移动的方式就是 A-->C A-->B C-->B A-->C B-->A B-->C A-->C
依次类推 我们可以简化为只有两块,那么移动只需要三步
第一步:把上面的n-1块木块 从来A---->B
第二步: 然后把最下面那块 从A---->C
第三步:最后把B上面的n-1块移动到C
A 0,B n-1,C 1;
那么接下来就是 就相当于把B当成A 位置的柱子,把n-1木块看成新的N块木块
重复以上步骤
抽象成方法就是
move(N、A、B、C);
调用时每次都是A---->C
第一步 move(N-1、A、C、B);
第二步 move(1、A、B、C);
第三步 move(N-1、B、A、C);
这样就完成了木块的递归移动
阅读全文
0 0
- 汉诺塔-递归算法和非递归算法
- 汉诺塔 算法(递归和非递归算法)
- 汉诺塔递归算法
- 汉诺塔-递归算法
- 汉诺塔(递归算法)
- 递归_汉诺塔算法
- 汉诺塔-递归算法
- 汉诺塔与递归算法
- 汉诺塔问题递归算法
- 递归算法-汉诺塔问题
- 递归算法--汉诺塔问题
- 汉诺塔递归算法
- 汉诺塔--递归算法
- 递归算法---汉诺塔
- 汉诺塔-递归算法
- 汉诺塔递归算法
- 汉诺塔---递归算法
- 汉诺塔递归算法
- CMD连接mysql数据库并查看mysql版本
- 1927: [Sdoi2010]星际竞速
- redis4.0、codis、阿里云redis 3种redis集群对比分析
- AJAX插件validate的应用
- 如何在PyCharm中配置Tensorflow环境
- 汉诺塔递归算法
- 状态栏
- 常用 Git 命令清单
- Android动态方式破解apk前奏篇(Eclipse动态调试smail源码)
- #多线程编程
- Mac OS 简易安装redis 标签: redisbrewserverclientMacOS 2016-05-30 23:04 7813人阅读 评论(0) 收藏 举报 分类: Redis 版权声
- 华为手机不打印日志信息
- AJAX插件form的应用
- Hive体系架构