python实现的汉诺塔算法示例


Posted in Python onOctober 23, 2019

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

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转换字符串为摩尔斯电码的方法
Jul 06 Python
Python中read()、readline()和readlines()三者间的区别和用法
Jul 30 Python
Flask 让jsonify返回的json串支持中文显示的方法
Mar 26 Python
Flask框架Jinjia模板常用语法总结
Jul 19 Python
Linux下多个Python版本安装教程
Aug 15 Python
Python目录和文件处理总结详解
Sep 02 Python
详解基于python-django框架的支付宝支付案例
Sep 23 Python
python的range和linspace使用详解
Nov 27 Python
Python字典添加,删除,查询等相关操作方法详解
Feb 07 Python
jupyter notebook中美观显示矩阵实例
Apr 17 Python
基于python 取余问题(%)详解
Jun 03 Python
Python ckeditor富文本编辑器代码实例解析
Jun 22 Python
在pandas中遍历DataFrame行的实现方法
Oct 23 #Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
Oct 23 #Python
Pandas DataFrame中的tuple元素遍历的实现
Oct 23 #Python
10行Python代码计算汽车数量的实现方法
Oct 23 #Python
在OpenCV里使用特征匹配和单映射变换的代码详解
Oct 23 #Python
手把手教你Python yLab的绘制折线图的画法
Oct 23 #Python
Python之Numpy的超实用基础详细教程
Oct 23 #Python
You might like
PHP通过正则表达式下载图片到本地的实现代码
2011/09/19 PHP
深入php数据采集的详解
2013/06/02 PHP
Cygwin中安装PHP方法步骤
2015/07/04 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
JavaScript 常见对象类创建代码与优缺点分析
2009/12/07 Javascript
jQuery Tools Dateinput使用介绍
2012/07/14 Javascript
json字符串之间的相互转换示例代码
2014/08/21 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
详解tween.js的使用教程
2017/09/14 Javascript
纯js代码生成可搜索选择下拉列表的实例
2018/01/11 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
关于Vue项目跨平台运行问题的解决方法
2018/09/18 Javascript
对angular4子路由&辅助路由详解
2018/10/09 Javascript
js实现通过开始结束控制的计时器
2019/02/25 Javascript
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
2019/12/16 Javascript
JavaScript如何实现图片处理与合成
2020/05/29 Javascript
Python中常用的高阶函数实例详解
2020/02/21 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
python dir函数快速掌握用法技巧
2020/12/09 Python
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
电信专业应届生自荐信
2013/09/28 职场文书
迷你西餐厅创业计划书范文
2013/12/31 职场文书
小学网上祭英烈活动总结
2014/07/05 职场文书
纪检干部现实表现材料
2014/08/21 职场文书
领导班子四风问题个人对照检查材料
2014/10/04 职场文书
工厂标语大全
2014/10/06 职场文书
房产分割协议书范文
2014/11/21 职场文书
2014年工商所工作总结
2014/12/09 职场文书
奖金申请报告模板
2015/05/15 职场文书
当幸福来敲门英文观后感
2015/06/01 职场文书
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python
用Python爬取某乎手机APP数据
2021/06/15 Python
Python中22个万用公式的小结
2021/07/21 Python
PostgreSQL基于pgrouting的路径规划处理方法
2022/04/18 PostgreSQL