本文主要是介绍【汉诺塔问题】盘子的不停移动---汉诺塔算法的分析和实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原问题为:
注:每次只能移动一个盘子,网上现有的汉诺塔问题中有些没有这个限制条件,因而可以使用同时移动上面的n-1个盘子来求解,相对比叫简单,而本题有次限制,因此需要特别注意!
图示:
如果自己苦思解法,未免有些困难,因此使用现有的比较成熟的算法思想,该算法来自百度百科,具体算法与链接如下所示:
算法介绍
其实算法非常简单,当盘子的个数为n时,移动的次数应等于2^n – 1(有兴趣的可以自己证明试试看)。后来一位美国学者发现一种出人意料的简单方法,只要轮流进行两步操作就可以了。首先把三根柱子按顺序排成品字型,把所有的圆盘按从大到小的顺序放在柱子A上
这篇关于【汉诺塔问题】盘子的不停移动---汉诺塔算法的分析和实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!