searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

python中的汉诺塔递归算法的具体运算过程是怎样的?

2023-05-12 01:17:38
33
0

游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。

Python代码如下:

def move(n,a,b,c):
    if n==1:
        print(a,'->',c)
    else:
        move(n-1,a,c,b)
        move(1,a,b,c)
        move(n-1,b,a,c)
move(3,'A','B','C')

代码容易写,但是理解起来就比较难了。

具体过程见下图,用Axure画的计算流程图。

上边Axure画的图也是看了基础教程的书想明白了,也可能是查了很多资料的储备后,然后恰好到看到这本书悟透了,总之,这是很奇妙的过程。

 

0条评论
0 / 1000
AE86下山了
3文章数
0粉丝数
AE86下山了
3 文章 | 0 粉丝
原创

python中的汉诺塔递归算法的具体运算过程是怎样的?

2023-05-12 01:17:38
33
0

游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。

Python代码如下:

def move(n,a,b,c):
    if n==1:
        print(a,'->',c)
    else:
        move(n-1,a,c,b)
        move(1,a,b,c)
        move(n-1,b,a,c)
move(3,'A','B','C')

代码容易写,但是理解起来就比较难了。

具体过程见下图,用Axure画的计算流程图。

上边Axure画的图也是看了基础教程的书想明白了,也可能是查了很多资料的储备后,然后恰好到看到这本书悟透了,总之,这是很奇妙的过程。

 

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0