python:用递归函数解决汉诺塔问题

汉诺塔问题源于印度一个古老传说的益智玩具。变成数据问题就是:从左到右有A、B、C三根柱子,其中A柱子上面有从小叠到大的n个圆盘,现要求将A柱子上的圆盘移到C柱子上去,但是在三根柱子之间一次只能移动一个圆盘,小圆盘上不能放大圆盘,求移动的步骤和移动的次数。

这是程序设计中经典的递归问题,网上查了一下,可以用很多程序语言实现。

其中python的代码最少,但是却没看懂,先记下来,看看有没有大神能解释一下。

def move (n, a, b, c):

    if n ==1:

        print(a, '-->', c)

    else:

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

        move (a, '-->', c)

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

# 调用

move(3, 'A', 'B', 'C')

执行了一遍,结果是对的。这么复杂的问题就这么几行代码解决了,神奇。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 9,059评论 0 13
  • 我的博客:递归之汉诺塔问题 一.起源: 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的...
    taylar_where阅读 956评论 1 3
  • 前置文章:递归算法:www.jianshu.com/p/703069f3ba3f . 汉诺塔问题是来源于印度传...
    郎小凯阅读 791评论 0 1
  • 汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱...
    lazydecoder阅读 1,641评论 0 7
  • 文章也同时在个人博客 http://kimihe.com/[http://kimihe.com/2016/12/2...
    QihuaZhou阅读 2,486评论 0 2