为了账号安全,请及时绑定邮箱和手机立即绑定

看了个位大佬的解释理解了递归过程,但是汉诺塔盘数越多过程越复杂,我好奇大佬是怎么抓住游戏规律写出来的?

#牛逼!!!!#

正在回答

4 回答

就化简问题,n个在a的时候就相当于把n-1个移动到b,把剩下的一个移动到c,然后再把b看成a,a看成b,又把n-2个移动到b(原来的a),把剩下的一个移动到c

8 回复 有任何疑惑可以回复我~
#1

GJA_ 提问者

非常感谢!
2018-07-20 回复 有任何疑惑可以回复我~
#2

黑迷

如果a有N个圆盘,可以看成a有1个圆盘(底盘) + (N-1)个圆盘,首先需要把 (N-1) 个圆盘移动到 b,然后,将 a的最后一个圆盘移动到c,再将b的(N-1)个圆盘移动到c。 为什么要把b看成a,a看成b?把a放到b的时候,刚好b的顺序是跟原来的a反着的,直接放c不就行了,跟题目说的好像不一样啊?
2018-07-25 回复 有任何疑惑可以回复我~
#3

_伪装臫巳_13749002 回复 黑迷

把a看成b是为了递归呀,我说的只是大概的思路~
2018-07-26 回复 有任何疑惑可以回复我~
#4

黑迷 回复 _伪装臫巳_13749002

我又回去看了下汉诺塔的游戏规则,发现我想的太简单了……
2018-07-26 回复 有任何疑惑可以回复我~
#5

醉心雨晴 回复 黑迷

他要求每次只移动一个,你说把n-1个原盘移动到b,这就不符合规则了呀?
2018-08-18 回复 有任何疑惑可以回复我~
查看2条回复

n-1  谁能用通俗的话解释下  谢谢

0 回复 有任何疑惑可以回复我~

貌似懂了   但是好复杂啊    啊啊啊啊啊

0 回复 有任何疑惑可以回复我~

把a看成b是为了递归呀,我说的只是大概的思路~

0 回复 有任何疑惑可以回复我~
#1

醉心雨晴

还是没听懂呀,你为什么可以把a看成b,你没有移动圆盘啊,如果这样,你开始就把a看成c,那一个也不用移动,就解决问题了呀
2018-08-18 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

看了个位大佬的解释理解了递归过程,但是汉诺塔盘数越多过程越复杂,我好奇大佬是怎么抓住游戏规律写出来的?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信