免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1724 | 回复: 0
打印 上一主题 下一主题

汉诺塔的两种非递归解法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-28 20:39 |只看该作者 |倒序浏览
[code]
如同我们能求出fabonacci数列的表达式,一定能用归纳的办法解决hanoi问题。

1 基本规律:
        最容易看出的规律就是盘子移动的序列:
给盘子从小到大编号1,2,……,N,试验移动盘子则可以得到一个这样的盘子移动序列(可以叫他hanoi数列H(n)):
1,2,1, 3, 1,2,1,    4      ,1,2,1, 3, 1,2,1,………
容易归纳出,1占据所有的奇数位,2占据所有序号可被2整除而不能被4整除的位,。。。。。。m占了能被2^(m-1)整除而不能被2^m整除的所有的位置。。。。。。。。由此可得,对m=((p*2^k) + 2^k-1),H(m)=k。很容易用数学归纳法证明。
这样就可以随机得到某一步所移动的盘子了。

另一方面,还要确定某一个盘子是往哪而移动的。这一点不容易直接想到,但是通过实验可以发现,在某一个盘子数N下,1号盘子的移动方向总是一定的。方向一定就是说,总是按照1
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP