汉诺塔 python版

简介:  汉诺塔问题:如果将n个盘子(由小到大)从a通过b,搬到c,搬运过程中不能出现小盘子在大盘子下面的情况。  思路分析:假设前要移动第100个盘子,分两步走,移动第99个;再移动第100个;而要移动第99个,同样分两部,移动第98个,再移动第99个,以此类推;   if(n>1)   {   ...

 汉诺塔问题:如果将n个盘子(由小到大)从a通过b,搬到c,搬运过程中不能出现小盘子在大盘子下面的情况。

 思路分析:假设前要移动第100个盘子,分两步走,移动第99个;再移动第100个;而要移动第99个,同样分两部,移动第98个,再移动第99个,以此类推;

  if(n>1)

  {

    1、先将A柱上的前n-1个盘子从A借助C移动到B;

    2、把A柱子上的第n个盘子直接移动到C;

    3、再将B柱子上的n-1个盘子借助A移动到C;

  }

 1 #!/usr/bin/python 
 2 #encoding=utf-8
 3 
 4 def hanoi(n, x, y, z):   //x表示第x根柱子,y表示第y根柱子,z表示第z根柱子
 5     if n==1:
 6         print x,'-->',z
 7     else:
 8         #将前n-1个盘子移动到y:
 9         hanoi(n-1, x, z, y)
10         print x, '-->', z    #x柱子移动到z上
11         #将y上的n-1个盘子移动到z上 
12         hanoi(n-1, y, x, z)
13 import sys 
14 
15 hanoi(int(sys.argv[1]), 'x', 'y', 'z')

 

相关文章
|
6月前
|
算法 Python
Python 一步一步教你用pyglet制作汉诺塔游戏
Python 一步一步教你用pyglet制作汉诺塔游戏
105 0
|
6月前
|
算法 数据处理 Python
【Python数据结构与算法】--- 递归算法应用-五行代码速解汉诺塔问题.
【Python数据结构与算法】--- 递归算法应用-五行代码速解汉诺塔问题.
32 0
|
Python
蓝桥杯-汉诺塔问题-python解法
蓝桥杯-汉诺塔问题-python解法
183 0
|
Python
Python|如何用递归解决汉诺塔问题?
Python|如何用递归解决汉诺塔问题?
116 0
|
算法 Python
python递归——汉诺塔
汉诺塔的传说 法国数学家爱德华·卢卡斯曾编写过一个印度的古老传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。
1224 0
|
Python
<递归>汉诺塔 | 斐波那契数列 | 阶乘 (附python实现源码)
经典递归 汉诺塔问题 背景故事 传说印度某间寺院有三根柱子,上串64个金盘。寺院里的僧侣依照一个古老的预言,以上述规则移动这些盘子;预言说当这些盘子移动完毕,世界就会灭亡。
1327 0
|
算法 Python
【Python学习】Python解决汉诺塔问题
参考文章:http://www.cnblogs.com/dmego/p/5965835.html 一句话:学程序不是目的,理解就好;写代码也不是必然,省事最好;拿也好,查也好,解决问题就好! 信息时代不用信息就是罪过,直接抄不加理解与应用,就不是自己的,下次遇到还是不会,或许其中的某一个细节就能够用于各个问题的解决,共勉 学习一个东西总会遇到一些经典的问题,学习Python第二天尝试看一下汉诺塔问题,还是百度,看看解题思路,纯粹是重温初中课堂,越活越回去了  汉诺塔的图解递归算法 一.起源:   汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。
3269 0
|
6天前
|
安全 数据处理 开发者
Python中的多线程编程:从入门到精通
本文将深入探讨Python中的多线程编程,包括其基本原理、应用场景、实现方法以及常见问题和解决方案。通过本文的学习,读者将对Python多线程编程有一个全面的认识,能够在实际项目中灵活运用。
|
1天前
|
设计模式 开发者 Python
Python编程中的设计模式:工厂方法模式###
本文深入浅出地探讨了Python编程中的一种重要设计模式——工厂方法模式。通过具体案例和代码示例,我们将了解工厂方法模式的定义、应用场景、实现步骤以及其优势与潜在缺点。无论你是Python新手还是有经验的开发者,都能从本文中获得关于如何在实际项目中有效应用工厂方法模式的启发。 ###