汉诺塔问题递归求解(python)
2016-09-04 01:44
351 查看
汉诺塔问题递归求解(python)
汉诺塔(Hanoi)问题古代有一个梵塔,塔内有三个座x,y,z坛,x座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个和尚想把这64个盘子从x座移到z座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。在移动过程中可以借助y座进行过渡。
解
def hanoi(n,x,y,z): '递归从x把所有盘子借助y移到z上' global count if n == 1: # 直接完成的状态 print(x,'-->',z) # 表示移动 count += 1 else: # 需要分解,分析方法是先把三个步骤每一个都看成“大的完整的”一步,思想上不要再拆下去 hanoi(n-1,x,z,y) # 1、把上边所有盘子从x借助z移到y上 print(x,'-->',z) # 2、把最底层那一个盘子移到z上 count += 1 hanoi(n-1,y,x,z) # 3、把上边所有盘子从y借助x移到z上 while 1: count = 0 # 步数记录 n = int(input("请输入汉诺塔层数:")) hanoi(n,'x','y','z') print(count)
相关文章推荐
- 用递归方法求解汉诺塔问题。
- 用递归法:设计算法求解汉诺塔问题,并编程实现。 (1) Hanoi(汉诺)塔问题分析 这是一个古典的数学问题,是一个用递归方法解题的典型例子。问题是这样的:古代有一个梵塔,塔内有3个座 A,B,C
- 1_6_1用栈求解汉诺塔问题_利用递归求解增强版汉诺塔问题
- Java编程用栈来求解汉诺塔问题的代码实例(非递归)
- 关于递归的总结——汉诺塔、素因数的求解(Python实现)
- 学习C/C++语言:递归求解hanoi汉诺塔问题
- Python递归例子:汉诺塔问题
- Python递归解决汉诺塔问题
- 递归求解汉诺塔问题
- Python递归调用_汉诺塔问题
- Java经典编程300例之实例047 汉诺塔问题求解(递归)
- 从“递归结构”到解汉诺塔问题的求解
- 黑马程序员--汉诺塔问题的递归求解C语言
- 利用Python的内嵌函数和递归研究汉诺塔问题
- java中使用递归求解汉诺塔问题
- Python初学笔记:递归解决汉诺塔问题
- 递归实现汉诺塔问题(python)
- Python求解“八皇后”问题的递归思路
- 经典递归解决汉诺塔问题 python实现
- 汉诺塔问题递归求解