python算法设计源码:https://github.com/MakerChen66/Python3Algorithm

版权声明:原创不易,本文禁止抄袭、转载,侵权必究!

目录

  • 一、汉诺塔
  • 二、源码下载
  • 三、作者Info

一、汉诺塔

汉诺塔:简单且经典的算法,它有一个很有意思的递归解决方案。

汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。 那么用Python来实现该如何操作呢?

我们试想一下,如果我们要将最大的圆盘移动到最右边的柱子上。我们需要把除此最大圆盘的其他圆盘先移动到中间的柱子上。因此这个问题就变成了如何将 N-1 个圆盘移动到中间的柱子上。那么我们就想到了递归的方法。

将 N 个圆盘从左边柱子移动到右边柱子:

  • 递归的将 N-1 个圆盘从左边柱子移动到中间柱子
  • 将最大的圆盘从左边柱子移动到右边柱子
  • 递归的将 N-1 个圆盘从中间柱子移动到右边柱子

Python算法实现:

def hanoi(height, left='left', right='right', middle='middle'):if height:hanoi(height - 1, left, middle, right)print(left, '=>', right)hanoi(height - 1, middle, right, left)hanoi(3)

输出结果:

二、源码下载

python算法设计源码下载:

  • GitHub下载链接:传送门
  • 原文链接:阅读原文

三、作者Info

作者:小鸿的摸鱼日常,Goal:让编程更有趣!

原创微信公众号:『小鸿星空科技』,专注于算法、爬虫,网站,游戏开发,数据分析、自然语言处理,AI等,期待你的关注,让我们一起成长、一起Coding!

版权说明:本文禁止抄袭、转载 ,侵权必究!

python算法设计 - 汉诺塔相关推荐

  1. python算法题-汉诺塔问题递归解法(python实现)

    问题描述 注:图片源于百度. 现在三个盘子,只有A盘放在大小各不相同的n个盘子,现在要求移动A上所有盘子到C上,且保持从上向下是由小变大的顺序. 移动过程遵循下面规则: 1.一次只能移动一个盘子 且最 ...

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

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

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

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

  4. Python递归实现汉诺塔

    Python递归实现汉诺塔: def f3(n,x,y,z): if(n==1):print(x,'--->',z)else:f3(n-1,x,z,y)print(x,'--->',z)f ...

  5. Python案例:汉诺塔游戏

    Python案例:汉诺塔游戏 游戏规则: (1)一次只能移动一个环 (2)小环必须在大环之上

  6. 【Java数据结构与算法】第十七章 二分查找(非递归)和分治算法(汉诺塔)

    第十七章 二分查找(非递归)和分治算法(汉诺塔) 文章目录 第十七章 二分查找(非递归)和分治算法(汉诺塔) 一.二分查找 1.思路 2.代码实现 二.分治算法(汉诺塔) 1.概述 2.汉诺塔 一.二 ...

  7. python函数递归 汉诺塔

    4.7 python函数递归 汉诺塔 代码: def hanno(n,A,B,C):global stepif n==1:print('{}->{}'.format(A,C))step +=1e ...

  8. 最简单的python语言实现汉诺塔游戏

    最简单的python语言实现汉诺塔游戏 实现代码 def hanoi(n,ch1,ch2,ch3):if n==1:print(ch1, '->', ch3)else:hanoi(n - 1, ...

  9. 经典算法之汉诺塔求解问题

    法国数学家爱德华·卢卡斯曾编写过一个印度的古老传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针.印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64 ...

最新文章

  1. ZJU-java进阶笔记 第七周(异常处理)
  2. Eclipse版本列表
  3. Nginx负载均衡实现之用户手动选择与DNS轮询
  4. spark大数据基本概念整理以及软件下载链接
  5. this和arguments
  6. 【转】在IIS 7.0上使用自签证书来启用SSL
  7. 《人月神话》-第19章-20年后的《人月神话》
  8. 空洞卷积(Dilated Convolution)简介
  9. java jpa是什么_jpa是什么框架?jpa是什么意思?
  10. 苹果中国官网新增蚂蚁花呗 24 期分期免息服务
  11. linux安装智能输入法,Ubuntu中文智能拼音输入法配置
  12. 编辑网页document.body.contentEditable='true';
  13. 《一往无前》10岁的小米,给世界讲了一个怎样的故事?
  14. linux 查看文件信息
  15. 最受商户关注的五大进销存软件,这份贴心排行榜秘籍请收好
  16. android qq截屏快捷键是什么,手机截屏的快捷键是什么,超过3种截图的快捷键操作方法!...
  17. SECS/GEM通信协议学习之报文
  18. 删除桌面的顽固IE(Internet Explorer)图标
  19. 当网站不允许上传asp cer cdx htr文件时的一个解决方法!
  20. 我的电子相册网页HTML案例

热门文章

  1. JAVA COMMON
  2. 二维火 Android 云收银模块化架构实践
  3. 使用Beef劫持客户端浏览器并进一步使用Beef+msf拿客户端shell
  4. 机器学习实战教程(2):K-近邻算法(史诗级干货长文)
  5. 解密宜人贷:科技驱动金融创新
  6. 谷歌Project Glass:最新情报盘点
  7. 关于csv文件导入excel出现“此文本文件包含的数据无法放置在一个工作表中。如要继续导入可容纳的数据,请单击确定。。。”的错误
  8. java计算机毕业设计国产精品动漫网站源码+mysql数据库+系统+lw文档+部署
  9. python凯撒加密代码_解密题(凯撒密码)
  10. 教师档案管理系统php,智睿教师档案管理系统 v8.6.0