鱼C论坛

 找回密码
 立即注册
查看: 3255|回复: 17

汉诺塔

[复制链接]
发表于 2014-11-23 22:35:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
小甲鱼的汉诺塔看的我有点不太明白 = = 楼主脑子太混乱了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-11-23 22:37:14 | 显示全部楼层
求通俗解释 上代码
def hannuo(n,x,y,z):
    if n==1:
        print(x,"-->",z)
    else:
        hannuo(n-1,x,z,y)#将前n-1个盘子从x移动到y上
        print(x,"-->",z)#将最底下的最后一个盘子从x移动到z上
        hannuo(n-1,y,x,z)#将y上的n-1个盘子移动到z上
number=int(input("please input the number of the "))
hannuo(number,"x","y","z")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-24 20:16:24 | 显示全部楼层
不太会。
召唤~@破渔网兜兜 @~风介~ @bevin
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-24 21:21:31 | 显示全部楼层
wei_Y 发表于 2014-11-24 20:16
不太会。
召唤~@破渔网兜兜 @~风介~ @bevin

这种纯逻辑的东西很难讲清楚啊,自己想明白才是自己的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-24 21:48:55 | 显示全部楼层
bevin 发表于 2014-11-24 21:21
这种纯逻辑的东西很难讲清楚啊,自己想明白才是自己的

32个赞!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-25 08:46:12 | 显示全部楼层
这个就是A,B,C三个盘子,你只要理解最后的结果就行,不用管中间的过程是什么,要想把东西从A移动到C,那么上面n-1个盘子肯定要先移动到B,然后最后一个大的放在C上面,这个就是一个递归,然后要把B全部移动到C上,那么n-2个盘子要先移动到A上,B上最后的那个盘子移动到C上,完成一次递归,就是这样以此类推的,用递归,不知道明白否
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2014-11-25 16:38:09 | 显示全部楼层
破渔网兜兜 发表于 2014-11-25 08:46
这个就是A,B,C三个盘子,你只要理解最后的结果就行,不用管中间的过程是什么,要想把东西从A移动到C,那么 ...

恩恩  好像有点明白了 我在思考下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-2 11:43:24 | 显示全部楼层
不用考虑得那么细致
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-2 17:22:47 | 显示全部楼层
你就把 除了最底下的盘子 都想成一个整体就好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-12-2 21:45:29 | 显示全部楼层
高深
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-12-4 10:35:09 | 显示全部楼层
好详细。楼上
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-11 21:33:15 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-7-12 09:21:44 | 显示全部楼层
楼上说的很详细了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-13 16:27:13 | 显示全部楼层
一开始我也不怎么明白,好像注重的是结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-27 15:58:10 | 显示全部楼层
其实我一直试着去执行一个简单的层数,然后我搞明白了2层的,搞不明白3层的顺序。
2层的:
1.hanoi(2,a,b,c)
2.hanoi(2-1,a,c,b)  output a2b
3.                        output a2c
4.hanoi(2-1,b,a,c)  output b2c

3层的:
1.hanoi(3,a,b,c)
2.hanoi(3-1,a,c,b)
3.hanoi(2-1,a,b,c)  output a2c
4. ……从第四步开始懵逼,不知道else部分的print执行的是哪个参数

求大神解答。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-2 15:25:23 | 显示全部楼层
我也是,脑袋是浆糊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-8 09:45:03 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-2-12 20:15:37 | 显示全部楼层
俺也是浆糊,不明白啊,看前面挺简单的,到这里就不行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 12:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表