Hanoi塔问题,虽然很弱智,还是做下记录
molimyi
posted @ 2011年10月26日 20:15
in 随手记
, 1688 阅读
看到的Hanoi塔问题,虽然很弱智,还是在这记录下
分析如下:
设A上有n个盘子。
如果n=1,则将圆盘从A直接移动到C。
如果n=2,则:
(1)将A上的n-1(等于1)个圆盘移到B上;
(2)再将A上的一个圆盘移到C上;
(3)最后将B上的n-1(等于1)个圆盘移到C上。
如果n=3,则:
(A)将A上的n-1(等于2,令其为n')个圆盘移到B(借助于C),步骤如下:
(1)将A上的n'-1(等于1)个圆盘移到C上。
(2)将A上的一个圆盘移到B。
(3)将C上的n'-1(等于1)个圆盘移到B。
( B)将A上的一个圆盘移到C。
C)将B上的n-1(等于2,令其为n')个圆盘移到C(借助A),步骤如下:
(1)将B上的n'-1(等于1)个圆盘移到A。
(2)将B上的一个盘子移到C。
(3)将A上的n'-1(等于1)个圆盘移到C。到此,完成了三个圆盘的移动过程。
从上面分析可以看出,当n大于等于2时, 移动的过程可分解为三个步骤:
第一步 把A上的n-1个圆盘移到B上;
第二步 把A上的一个圆盘移到C上;
第三步 把B上的n-1个圆盘移到C上;
其中第一步和第三步是类同的。
当n=3时,第一步和第三步又分解为类同的三步,
即把n'-1个圆盘从一个针移到另一个针上,这里的n'=n-1。
molimyi
Archive
- 2014年02月
- 2014年01月
- 2013年12月
- 2013年11月
- 2013年10月
- 2013年09月
- 2013年08月
- 2013年07月
- 2013年06月
- 2013年05月
- 2013年04月
- 2013年03月
- 2013年02月
- 2013年01月
- 2012年12月
- 2012年11月
- 2012年10月
- 2012年09月
- 2012年08月
- 2012年07月
- 2012年06月
- 2012年05月
- 2012年04月
- 2012年03月
- 2012年02月
- 2012年01月
- 2011年12月
- 2011年11月
- 2011年10月
- 2011年09月
- 2011年08月
- 2011年07月
- 2011年06月
- 2011年05月
- 2011年04月
- 2011年03月
Links
计数器
27627
2011年10月26日 20:30
這個博客的排版……把字遮住了……刷新了幾遍,還以為自己的網絡不好……
這個問題,不弱啊……假如不用递归,不可能用最快速度做出来……
2011年10月26日 21:30
是没有设置好,完了改改
2011年10月27日 15:56
很巧,今天也看了看hanoi算法。这个算法让我觉得递归太神奇了。