python汉诺塔算法解析_基于Python的汉诺塔算法
首先贴出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)上
如此循环往复,完成汉诺塔问题
原文:http://www.cnblogs.com/mzcletics/p/5901784.html
python汉诺塔算法解析_基于Python的汉诺塔算法相关推荐
- python协同过滤可以预测吗_基于用户的协同过滤推荐算法原理-附python代码实现...
在推荐系统众多方法中,基于用户的协同过滤推荐算法是最早诞生的,原理也较为简单.该算法1992年提出并用于邮件过滤系统,两年后1994年被 GroupLens 用于新闻过滤.一直到2000年,该算法都是 ...
- python中numpy数组的合并_基于Python中numpy数组的合并实例讲解
基于Python中numpy数组的合并实例讲解 Python中numpy数组的合并有很多方法,如 - np.append() - np.concatenate() - np.stack() - np. ...
- python关于二手房的课程论文_基于python爬取链家二手房信息代码示例
基本环境配置 python 3.6 pycharm requests parsel time 相关模块pip安装即可 确定目标网页数据 哦豁,这个价格..................看到都觉得脑阔 ...
- python怎样使用各个日期赤纬_基于Python的天文软件命令行界面设计与实现
计算机软件技术的不断发展,推动了人机交互技术的长足进步.从传统的命令行(Command Line Interface,CLI),到图形用户界面(Graphical User Interface,GUI ...
- python版植物大战僵尸源码_基于python的植物大战僵尸游戏设计与实现.docx
湖南理工学院毕业设计(论文) PAGE PAGE 1 学 号 毕业设计(论文) 题目:基于python的植物大战僵尸游戏设计与实现 作 者 届 别 届 院 别 信息与通信工程学院 专 业 信息工程 指 ...
- 基于python的爬虫系统金融数据_基于Python的互联网金融数据采集
基于Python的互联网金融数据采集 □文/王 蕾1安英博1刘佳杰2 [提要] 互联网金融数据中潜藏着未知的知识价值,但也存在着巨量的数据冗余.通过Python可以进行互联网金融数据的获取.解析.提取 ...
- python发送文件给微信好友_基于Python实现定时自动给微信好友发送天气预报
效果图 from wxpyimport * import requests from datetimeimport datetime import time from apscheduler.sche ...
- 基于python的公众号课堂教学_基于Python的微信公众号数据挖掘分析
基于Python的微信公众号数据挖掘分析 华南农业大学电子工程学院 王 建 黄宁香 [期刊名称]电子世界 [年(卷),期]2019(000)011 [总页数]3 运用Python网络爬虫技术对某时事类 ...
- 用python写脚本筛选原创微博_基于python编写的微博应用
本文实例讲述了基于python编写的微博应用,分享给大家供大家参考.具体如下: 在编写自己的微博应用之前,先要到weibo开放平台申请应用的公钥和私钥. 下载python版的SDK,打开example ...
最新文章
- 扫地机器人评测 毛发_会切毛发的机器人?海尔扫地机P70抢先评测
- 发力企业云,用友是要掉队,还是进击?
- Linux/CentOS安装MySQL(RPM安装、编译安装)
- c#与api类型对照表
- java -虹软Caused by: java.lang.UnsatisfiedLinkError: Can‘t load library: **\WIN64\libarcsoft_face.dll
- 给页面加上loading加载效果
- JSP购物车案例精简版-适合小白学习
- 一文告诉你16条微信小程序推广渠道大全
- 阴历日期和阳历日期互相转换(java)
- windows10正式版官方原版镜像iso下载地址
- vue项目中 高德地图总是出不来的问题
- 用计算机专业怼人,专业示范,教你如何用所学专业知识“怼人”
- 【论文笔记】CVR预估之ESMM模型
- Kubernetes 安全专家(CKS)必过心得
- php怎么快速背,一个月背部快速蜕变?用上这7招效果绝对意想不到!
- CentOS 下搭建 aria2 远程下载环境
- 电路习题解答 第五章 5-5、5-6
- 第九章 SQL查询数据库(一)
- Thunderbird邮件客户端,支持直接另存为模板
- HTML5期末大作业:汽车销售网站模板设计(7个页面) HTML+CSS+JavaScript 企业网页设计源码