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

这三个平台的顺序变换过程是怎么个原理

卧槽,我的脑子要炸了,怎么想不通这个

move(n, a, b, c)
move(n-1, a, c, b)
move(n-1, b, a, c)

三个平台顺序变化的过程,汉诺塔能理解,但是这平台变换实在是。。。

有没有大神给我解解惑

正在回答

2 回答

abc得顺序其实可以这么去记:a移动到b依靠c,然后在把汉诺塔的1到3层走一遍就知道了,希望对您有帮助。

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

我是谁的友人A

应该是a移动到c依靠b(move(n, a, b, c))
2017-06-11 回复 有任何疑惑可以回复我~
#2

进击的学霸No1 提问者

A 要把 n-1 个放到 B 上,靠 C 来放,move(n, a, b, c) A 要把 n-2 个放到 C 上,靠 B 来放,move(n-1, a, c, b) 把 A的 n-1 个全都放在 B 上了,再把 A 的底座也就是第 n 个放到 C 上,print... 此时 B 上有 n-1 个盘子,C 上有一个盘子,把 B 上的盘子视为 n 个, B 要把 n-1 个盘子放到 A 上,靠 C 来放, move(n-1, b, a, c) 这么想么,感觉有什么地方不对劲的样子
2017-06-11 回复 有任何疑惑可以回复我~
#3

我是谁的友人A 回复 进击的学霸No1 提问者

你没理解递归的意义,递归的写法就是从最后一步开始写,但是他的计算是从第一个开始计算的。
2017-06-30 回复 有任何疑惑可以回复我~
#4

进击的学霸No1 提问者

我在琢磨琢磨,感谢您的帮助!
2017-07-01 回复 有任何疑惑可以回复我~
查看1条回复

递归函数是最先算出来的是最后一步,也就是说它出来的结果是倒序的。

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

举报

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

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

进入课程

这三个平台的顺序变换过程是怎么个原理

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