Python 递归解决汉诺塔问题
Python,递归,解决,汉诺塔,问题
2025-04-11 08:57:58 时间
汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
问题分析
先来看一下汉诺塔的玩法。下图为3层的汉诺塔。
第一步 x–>z:
第二步 x–>y:
第三步 z–>y:
第四步 x–>z:
第五步 y–>x:
第六步 y–>z:
第七步 x–>z:
通过分析以上的步骤,可以大致分解为以下三个步骤:
- 将 x 轴上的 n-1 个盘子移动到 y 轴上。
- 将 x 轴上最底下的盘子移动到 z 轴上。
- 将 y 轴上的 n-1 个盘子移动到 z 轴上。
代码示例
def hanoi(n, x, y, z):
step=0
if n == 1:
print(x, '-->;', z)
else:
hanoi(n - 1, x, z, y)
print(x, '-->', z)
hanoi(n - 1, y, x, z)
n=input("请输入汉诺塔上圆盘的个数:")
n=int(n)
hanoi(n, 'x', 'y', 'z') #调用hanoi函数
相关文章
- python批量获取同程酒店的信息
- python不换行输出
- Python字符串删除、截取,删除某个字符、片段[通俗易懂]
- python fileinput_python模块fileinput
- 人生苦短,python更短
- Python简介 「建议收藏」
- Python 细聊!可以媲美 PS 的 PIL 图片处理库
- 日拱一卒,一起来学伯克利CS61A,先做几道有趣的Python热身题
- 用python给女朋友表白_python绘制太阳花
- python实现求和,求平均值——函数
- python基础-内置函数详解[通俗易懂]
- Python的使用方法「建议收藏」
- Python求逆矩阵_3x3下三角矩阵求逆矩阵
- 毕业设计!Python实现学生教师刷脸签到系统
- python自行实现支付宝证书签名&验签全流程[通俗易懂]
- python中isinstance函数
- Python怎么输入小数和整数_python输入非负整数
- 《快学Python》送书名单!
- 【python实战】不让我复制?看我自制个带文字识别的截屏工具
- Python实现物流管理系统