附图地址:
http://www.docin.com/p1-532193843.html
在线玩网站:
http://www.mathsisfun.com/games/towerofhanoi.html
定义:借助针——非目的地
目的针——目的地
只要遵循两个规则。从下往上数,偶数个盘片要去到借助针,奇数个盘片要去到目的针。
如图。
最初的思路:我们要让4去到借助针。3去到目的针。2去到借助针。1 去到目的针。
但移动了两步之后我们发现
这时候需要把借助针清空。才能让2去到借助针(Tower 2)。清空的方法是把Tower 2的盘片移动到Tower 3 。
之后发现
这时候我们需要把tower3清空。让它上面的盘片都去到Tower2。才能让Tower1上最后一个盘片去到Tower3(我们最初的思路)
于是问题就转化为以Tower1为借助针。Tower3为目的针的汉诺塔问题了。
同样的。我们要让3 去到目的针,2去到借助针。1去到目的针。
分享到:
相关推荐
汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上安大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另...
汉诺塔C语言源代码汉诺塔C语言源代码汉诺塔C语言源代码汉诺塔C语言源代码汉诺塔C语言源代码汉诺塔C语言源代码汉诺塔C语言源代码
汉诺塔是传统的智力游戏,与华容道、魔方等类似。这是汉诺塔游戏的Python源代码,使用了基本的递归方式实现汉诺塔求解问题。 欢迎大家下载。
汉诺塔演示程序 java程序源代码汉诺塔演示程序 java程序源代码
---汉诺塔源代码--- ---汉诺塔源代码--- ---汉诺塔源代码--- ---汉诺塔源代码--- ---汉诺塔源代码---
用非递归算法,用栈解决问题,C#语言,来解决汉诺塔移动问题
Java 程序设计 可视化汉诺塔问题 玩法演示 玩家游戏 演示方法两种:-一 多线程 二 Timer类
其中有汉诺塔非递归的源代码以及运行结果 强烈推荐
JAVA图形界面程序——汉诺塔演示程序代码
这是基于C#开发的汉诺塔源代码,希望能帮助到大家
算法分析设计中三柱汉诺塔算法的拓展,四柱汉诺塔的设计算法代码
C语言编写的程序代码,能够动态演示汉诺塔的移动过程。
汉诺塔Java实现,包含代码和Jar,界面里输入盘数,即可输出步骤!(小心OutOfMemoryError)
汉诺塔的非递归实现,c++实现的,很简单,只有50多行,从递归的汉诺塔改编而来,将原来递归时的参数状态保存在栈中,入栈代替递归,出栈代替递归返回。
c语言源代码,汉诺塔游戏的演示
汉诺塔Hannoi(java)源程序 包含汉诺塔6个类
汉诺塔 算法 Java代码
汉诺塔的非递归解法,十分神奇,值得借鉴! 汉诺塔的非递归解法,十分神奇,值得借鉴! 汉诺塔的非递归解法,十分神奇,值得借鉴! 汉诺塔的非递归解法,十分神奇,值得借鉴! 汉诺塔的非递归解法,十分神奇,值得...
汉诺塔游戏汉诺塔游戏