简短意赅的用思维导图理解python递归实现汉诺塔
2020-03-05 02:24
239 查看
def hanoi(n,x,y,z): if n == 1: print(x ,'-->' ,z ) else: hanoi(n-1 ,x ,z ,y ) print(x ,'------>' , z) hanoi(n-1 ,y ,x ,z ) n = int(input('请输入汉诺塔的层数:')) hanoi(n, 'x','y','z')
理解
每一步的意图想必都可以理解,主要问题在于不知道怎么就出来了一系列的操作步骤,观看众多大佬的解释,折腾了一中午后的我画思维导图终于理解它每一步到底是怎么来的了!!!
其中h3(x,y,z)代表的就是原代码中的hanoi(3,x,y,z),后面的h1,h2,h3都是这样
个人纠结懵逼半天总结:
其实就是函数的执行过程,一个接着一个弄完,然后就是函数里面又有函数,比如思维导图里面分岔里面又进行了分岔
再然后就是hanoi里面的x,y,z的几次的变化,虽然字母几次调换了顺序,但是他们最后输出的其实是和变量的位置相关。这样就好理解了。
里面分别用–>和---->来表示两次print输出的不同
最后3层的汉诺塔就是从上到下的顺序,依次是:
x–>z
x---->y
z–>y
x---->z
y–>x
y---->z
x–>z
第一次,请多多指教呀!
- 点赞 1
- 收藏
- 分享
- 文章举报
相关文章推荐
- 用Python递归实现汉诺塔问题
- 汉诺塔,python递归实现解法步骤
- Python 递归实现汉诺塔
- 关于递归的总结——汉诺塔、素因数的求解(Python实现)
- 递归浅析之汉诺塔问题及python实现
- 使用python实现递归版汉诺塔示例(汉诺塔递归算法)
- Python递归实现汉诺塔详细解析
- 汉诺塔问题的python递归实现
- 递归实现汉诺塔问题(python)
- 经典递归解决汉诺塔问题 python实现
- python 递归实现 汉诺塔
- python递归实现汉诺塔
- python 递归实现汉诺塔
- python递归实现汉诺塔问题-详解
- 【Python编程】 汉诺塔的递归实现
- 汉诺塔与递归之C++ 和Python实现
- python-汉诺塔递归实现
- python用递归实现汉诺塔问题
- Python小练习 - 递归实现“汉诺塔”
- Python递归实现汉诺塔