首先贴出Python编写的汉诺塔算法的代码:

def hanoti(n,x1,x2,x3):

if(n == 1):

print('move:',x1,'-->',x3)

return

hanoti(n-1,x1,x3,x2)

print('move:',x1,'-->',x3)

hanoti(n-1,x2,x1,x3)

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

汉诺塔问题归根结底就是一个递归问题,递归包括两大要素:递归体、递归结束条件

首先分析汉诺塔算法的思想:

第一步:若想将n个圆盘中最大的圆盘从A塔放到C塔,需要借助B塔放置其余的n-1个圆盘

第二步:再把B塔看做初始条件时的A塔,将B塔上的n-1个圆盘依据规则放置到C塔上,这一步就是实现一个递归

依据代码来分析:

首先定义函数hanoti(n,x1,x2,x3),该函数作用是将n个圆盘从第一个参数(这里为x1)放到第三个参数(这里为x3)上,

if判断是递归结束条件,意思为若只有一个圆盘,只需要将他从第一个参数(这里为x1)放到第三个参数(这里为x3)上即可,

如果不满足递归结束条件,函数继续执行,

hanoti(n-1,x1,x3,x2)语句就是执行第一步的过程,即将除最大圆盘外的n-1个圆盘从第一个参数(这里为x1)放到第三个参数(这里为x2)上,

然后输出表示移动结束的print语句,

这一句结束后,表示x2上现在放置着所有剩余的n-1个圆盘,

再继续递归hanoti(n-1,x2,x1,x3)语句,执行第二步过程,即将剩余的n-1个圆盘按同样的方法从从第一个参数(这里为x2)放到第三个参数(这里为x3)上

如此循环往复,完成汉诺塔问题

汉罗塔python_基于Python的汉诺塔算法相关推荐

  1. python汉诺塔算法解析_基于Python的汉诺塔算法

    首先贴出Python编写的汉诺塔算法的代码: def hanoti(n,x1,x2,x3): if(n == 1): print('move:',x1,'-->',x3) return hano ...

  2. python英汉字典,Python基于有道实现英汉字典功能,python英汉字典

    Python基于有道实现英汉字典功能,python英汉字典 本文实例讲述了Python基于有道实现英汉字典功能的方法.分享给大家供大家参考.具体如下: import re,urllib aa=&quo ...

  3. python汉诺塔算法解析,python实现的汉诺塔算法示例

    本文实例讲述了python实现的汉诺塔算法.分享给大家供大家参考,具体如下: 规则: 圆盘从下面开始按大小顺序重新摆放在另一根柱子上.并且规定 在小圆盘上不能放大圆盘 在三根柱子之间一次只能移动一个圆 ...

  4. python实现汉诺塔递归经典算法_Python递归实现汉诺塔算法示例

    本文实例讲述了Python递归实现汉诺塔算法.分享给大家供大家参考,具体如下: 最近面试题,面试官让我5分钟实现汉诺塔算法(已然忘记汉诺塔是啥). 痛定思痛,回来查了一下汉诺塔的题目和算法.题干与实现 ...

  5. 用python编写一个汉诺塔的移动函数_python实现的汉诺塔算法示例

    本文实例讲述了python实现的汉诺塔算法.分享给大家供大家参考,具体如下: 规则: 圆盘从下面开始按大小顺序重新摆放在另一根柱子上.并且规定 在小圆盘上不能放大圆盘 在三根柱子之间一次只能移动一个圆 ...

  6. 【汉诺塔-算法必备】

    文章目录 汉诺塔~算法 代码如下: 一天一点python小学习 `小知识点`: 上一页:[PTA~基础编程题集](https://blog.csdn.net/m0_66318554/article/d ...

  7. 汉诺塔算法python_python实现汉诺塔算法

    题目: 汉诺塔给出最优解,如果对汉诺塔的定义有不了解,请翻看数据结构教材. 除了最基本的之外,还有一题,给定一个数组,arr=[2,3,1,2,3],其含义是这是一个有5个圆盘的汉诺塔,每一个数字代表 ...

  8. 手撕“汉诺塔算法”之详细图解

    hello,你好呀,我是灰小猿,一个超会写bug的程序猿, 今天和大家分享一个递归经典算法案例---"汉诺塔". 汉诺塔问题回顾 汉诺塔(Tower of Hanoi)源于印度传说 ...

  9. 算法自我分析——汉诺塔算法

    汉诺塔算法 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘从下面开始按大小 ...

  10. 汉诺塔算法 java_汉诺塔算法java实现详解

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public ...

最新文章

  1. Notepad++中执行Python脚本
  2. oracle中判断是否为季末,Oracle中取月初,月末,季初,季末及年初,年末时间总结...
  3. 第三部分:Android 应用程序接口指南---第二节:UI---第八章 Toast通知
  4. 5G为何采纳华为力挺的Polar码?一个通信工程师的大实话
  5. 4.RabbitMQ 4种交换模式
  6. 安卓手机背景变黑色怎么改_别着急扔掉旧手机 你的电脑可能需要它
  7. OpenCV图像的轮廓的匹配
  8. 数学建模-14.主成分分析PCA
  9. XML和JSON的使用总结
  10. filebeat日志采集的一次流程记录
  11. ArcGIS单波段提取
  12. JAVA的MySQL字符串拼接_MySQL字符串拼接、截取
  13. C++--最大公约数和最小公倍数
  14. canvas 填充圆内正方形
  15. java 字符串排列组合_字符串排列组合问题
  16. Idea复制文件一直updating indices
  17. 基于docker的test-containers环境百宝箱
  18. 2018 *精读书单 -选读
  19. 巴菲特:为什么在混乱和动荡的时候最适合买入股票?
  20. 【产品功能】弹性网卡支持私网多IP

热门文章

  1. java中的Math类
  2. Kubernetes基础篇:主要特性、基本概念与总体架构
  3. apache+nginx 实现动静分离
  4. 架构师:成为架构师可能会面临的问题
  5. Javascript Eclipse 自动代码规范化
  6. java重命名文件(附道客巴巴文档下载方法)
  7. java 阻塞队列 BQ_Java Concurrency in Practice 读书笔记 第六章
  8. MySQL5.7的下载以及安装
  9. 多线程之Lock锁和读写锁ReadWriteLock
  10. 手拉手教你实现一门编程语言 Enkel, 系列 15