python实现的汉诺塔算法示例
作者:鲸落丶 发布时间:2023-09-21 11:28:17
标签: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程序设计有所帮助。
来源:https://www.cnblogs.com/kunpengv5/p/02f91febb742fb1ee79031a17dfb835e.html
0
投稿
猜你喜欢
- 今天,发现了一个之前从未注意的角落,相信能够大大提高自己写JS的速度。能够迅速发现错误。例如,今天的加班中调试一个js错误发现的一个例子。1
- 这篇文章阐述的是一种函数式编程(functional-programming)设计模式,我称之为惰性函数定义(Lazy Function D
- 这里假定Postgresql数据库已经装好。首先安装依赖的包$ sudo yum install python-devel postgres
- python-opencv3.0新增了一些比较有用的 * 算法,这里根据官网示例写了一个 * 类程序只能运行在安装有opencv3.0以上版
- 大家在没有阅读本文之前先看下python的基本概念,Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python由Gui
- 1. 小整数对象池整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。Python
- 最近是有点忙,感觉好久没写博客了。但是最近看到一个有趣的就是gif动图的倒放,因为这个原理也并不是很难,而且用到的库以前也略微的看过一点点,
- 以下的文章主要向大家介绍的是实现MySQL远程访问的实际操作流程,以及在实现MySQL远程访问的过程中哪些的相关事项是十分重要的,以下就是文
- 学生信息系统提示:python编写的学生成绩管理系统,包括8个功能和打包教程一、功能界面 def menum():
- Appium在前文的讲解中,我们学会了如何安装Appium,以及一些基础获取App元素内容的方式。但认真看过前文的读者,肯定在博主获取元素的
- PHP程序员玩转Linux系列文章:1.PHP程序员玩转Linux系列-怎么安装使用CentOS2.PHP程序员玩转Linux系列-lnmp
- QueueQueue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生
- 装饰器一、介绍器:代表函数的意思。装饰器本质就是是函数功能:装饰其他函数,就是为其他函数添加附加功能 被装饰函数感受不到装饰器的存
- *args和 **kwargs是常用的两个参数*args:用于接受多余的未命名的参数,元组类型。**kwargs:用于接受形参的命名参数,字
- PHP添加图像处理(ImageMagick)下载地址:http://pecl.php.net/package/imagick安装说明:htt
- 背景:由于需要对ocr识别系统的表格识别结果做验证,通过返回的json文件结果对比比较麻烦,故需要将json文件里面的识别结果还原为表格做验
- 本文实例为大家分享了python实现图片转换成素描和漫画格式的具体代码,供大家参考,具体内容如下原图图片转换后的成果源码# -*- codi
- 一、Sql Server中的日期与时间函数 1. 当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加
- 现在我们常见到有些网站常有这样个功能:有个按钮(如工作职位或省份或地区的选择等等)你一点就跳出一个图层(对话框)让你选择之类的。关闭它就点右
- 导语:使用 python-plotly 模块来进行压测数据的绘制,并且生成静态 html 页面结果展示。不少小伙伴在开发过程中都有对模块进行