汉诺塔问题(三阶梵塔问题)

 题目描述:有三个棍子。一个棍子上有N个盘子,另外两个没有盘子。盘子有编号。初始状态那棍子上盘子编号从上往下1,2,3....n

求解状态:全部移动到另外两个棍子中的一个棍子上。(任意一个都行)

移动要求:编号小的盘子下面可以有编号大的盘子。反之不允许。

要求:

输入:最大盘子高度N

输出:每次移动的盘子号

比如两个盘子

输入:2

输出:1  2   1

 

研究了一个特解。两个的解值是121  三个的解值是1213121这个是可以递归的。所以后来发现4个盘子是121312141213121

写开一点

两个的: 1     2      1

三个的:1  2   1        3           1     2   1

四个的:1  2   1       3     1  2  1      4        1  2   1       3     1  2  1 

今年ACM的一个题目。要编程。我看也不用去搞汉诺塔了模型抽象出来了研究下数列就OK了嘎嘎。都是轴对称数列。每个轴对称数列中又是轴对称数列。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章