python实现的汉诺塔算法示例

 更新时间:2019年10月23日 11:58:51   作者:鲸落丶  
这篇文章主要介绍了python实现的汉诺塔算法,结合实例形式分析了汉诺塔算法的原理、实现方法及相关操作注意事项,需要的朋友可以参考下

本文实例讲述了python实现的汉诺塔算法。分享给大家供大家参考,具体如下:

规则:

圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定

  • 在小圆盘上不能放大圆盘
  • 在三根柱子之间一次只能移动一个圆盘。

算法思路:【三阶的移动思路】

python实现:[注意实参和形参]

    用python方法调用,实现输入圆盘数,打印移动的过程

def move(n,a,b,c):
  if n==1:
    print(a,'-->',c)
  else:
    move(n-1,a,c,b)  #将前n-1个盘子从a移动到b上
    move(1,a,b,c)   #将最底下的最后一个盘子从a移动到c上
    move(n-1,b,a,c)  #将b上的n-1个盘子移动到c上
move(3,'A','B','C')

程序执行的结果:

A --> C
A --> B
C --> B
A --> C
B --> A
B --> C
A --> C

程序分析:

涉及到递归函数,理解起来会容易凌乱,我们以3个盘子为例,进行执行步骤分析

(3,A,B,C)       
->move(2,A,C,B)
        ->move(1,A,B,C)   A->C
        ->move(1,A,C,B)   A->B
        ->move(1,C,A,B)   C->B
->move(1,A,B,C)             
                 A->C
->move(2,B,A,C)
        ->move(1,B,C,A)   B->A
        ->move(1,B,A,C)   B->C
        ->move(1,A,B,C)   A->C

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • Python内置模块logging用法实例分析

    Python内置模块logging用法实例分析

    这篇文章主要介绍了Python内置模块logging用法,结合实例形式较为详细的分析了Python基于logging模块的日志配置、输出等常用操作技巧,需要的朋友可以参考下
    2018-02-02
  • Python操作excel的方法总结(xlrd、xlwt、openpyxl)

    Python操作excel的方法总结(xlrd、xlwt、openpyxl)

    这篇文章主要给大家介绍了关于Python操作excel的一些方法,其中包括xlrd、xlwt、openpyxl的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • 利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)

    利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)

    这篇文章主要给大家介绍了关于利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • python 教程实现 turtle海龟绘图

    python 教程实现 turtle海龟绘图

    这篇文章主要介绍了python 教程实现 turtle绘制海龟绘图,文章基于python的相关资料展开turtle绘制海龟绘图的详细内容,需要的小伙伴可以参考一下
    2022-05-05
  • Django模板语言 Tags使用详解

    Django模板语言 Tags使用详解

    这篇文章主要介绍了Django模板语言 Tags使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Python命令行参数化的四种方式详解

    Python命令行参数化的四种方式详解

    在日常编写 Python 脚本的过程中,我们经常需要结合命令行参数传入一些变量参数,使项目使用更加的灵活方便。本文章罗列了构建 Python命令行参数的4种常见方式,需要的可以参考一下
    2022-06-06
  • 关于Matplotlib绘制动态实时曲线的方法改进指南

    关于Matplotlib绘制动态实时曲线的方法改进指南

    这篇文章主要给大家介绍了关于Matplotlib绘制动态实时曲线的相关资料,matplotlib是python里最popular的画图工具,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2021-06-06
  • 浅析对torch.unsqueeze()函数理解

    浅析对torch.unsqueeze()函数理解

    torch.unsqueeze()函数起到升维的作用,dim等于几表示在第几维度加一,这篇文章主要介绍了对torch.unsqueeze()函数理解深度解析,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • Django自定义用户登录认证示例代码

    Django自定义用户登录认证示例代码

    这篇文章主要给大家介绍了关于Django自定义用户登录认证的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Django具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • 正确的理解和使用Django信号(Signals)

    正确的理解和使用Django信号(Signals)

    这篇文章主要介绍了如何正确的理解和使用Django信号(Signals),帮助大家更好的理解和学习是Django,感兴趣的朋友可以了解下
    2021-04-04

最新评论