python-hanoi】的更多相关文章

本文已做成视频教程投稿b站(视频版相对文本版有一些改进),点击观看视频教程 本文主要通过三个实例来帮助大家理解递归(其展示动画已上传B站): 谢尔宾斯基三角形(Sierpinski Triangle),点击观看动画 汉诺塔(Tower of Hanoi),点击观看动画 迷宫探索(Maze Exploring),点击观看动画 本文代码已上传到github:https://github.com/BigShuang/recursion-with-turtle 本文参考文献:Problem Solvin…
汉诺塔问题源于印度的一个古老传说:梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.梵天命令婆罗门把圆盘按大小顺序重新摆放在另一根柱子上,并且规定小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘.当所有的黄金圆盘都重新摆放在另一根柱子上时,世界就将在霹雳声中毁灭,梵塔.庙宇和众生都将同归于尽. 假设A是起始柱,B是中间柱,C是目标柱. 从最简单的例子开始看: 如果A柱上只剩一个圆盘,那么将圆盘从A柱移到C柱即可. (A --> C) 如果A柱上剩两…
reference:递归函数 Note 1.在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. eg.计算阶乘: #!/usr/bin/env python3 def my_func(n) : if n == 1 : return 1 return n * my_func(n-1) output: >>> from function4 import my_func >>> my_func(1) 1 >>> my_fun…
#hanoi.py count = 0 def hanoi(n, src, dst, mid): #src为原1号柱子 dst 目标3号柱子 mid中间2号过渡柱子 global count #对全局变量count的引用 if n == 1: print("{}:{}->{}".format(1,src,dst)) count += 1 else : hanoi(n-1, src, mid, dst) print("{}:{}->{}".format(n…
汉诺塔问题 1.问题来源:汉诺塔来源于印度传说的一个故事,上帝创造世界时作了三根金刚石柱子,在一根柱子上从上往下从小到大顺序摞着64片黄金圆盘.上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上.并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一回只能移动一个圆盘,只能移动在最顶端的圆盘. 2.问题分析: 汉诺塔问题的以下几个限制条件: 1.在小圆盘上不能放大圆盘. 2.在三根柱子之间一回只能移动一个圆盘. 3.只能移动在最顶端的圆盘.   案例 1 - 假设只有一个盘子的时候, 盘…
问题一:以下的代码的输出将是什么? 说出你的答案并解释. class Parent(object): x = 1 class Child1(Parent): pass class Child2(Parent): pass print Parent.x, Child1.x, Child2.x Child1.x = 2 print Parent.x, Child1.x, Child2.x Parent.x = 3 print Parent.x, Child1.x, Child2.x 答案 以上代码的…
问题一:以下的代码的输出将是什么? 说出你的答案并解释. class Parent(object): x = 1 class Child1(Parent): pass class Child2(Parent): pass print Parent.x, Child1.x, Child2.x Child1.x = 2 print Parent.x, Child1.x, Child2.x Parent.x = 3 print Parent.x, Child1.x, Child2.x 答案 以上代码的…
--2013年10月10日23:54:43 今天需要获取机场信息,发现一个网站有数据,用爬虫趴下来了所有数据: 目标网址:http://www.feeyo.com/airport_code.asp?page=1 代码: #!/usr/bin/python #coding:gbk import urllib2 import re def op(page): url = "http://www.feeyo.com/airport_code.asp?page=%d" % page re_qb…
汉诺塔问题:如果将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; } #!/usr/bin/python #encoding=utf-8 def h…
看完了莫烦Python的视频,对于Python有了一点感觉,接下来打算把小甲鱼的视频啃完,附上学习网址:http://blog.fishc.com/category/python 小甲鱼的视频是从零基础开始的,所以这篇笔记补充一些注意点和新知识点,有很多内容在前面的笔记中已经提及:<Python初学基础>,在这里就不再赘述啦. 1 Python & IDLE Python 是什么类型的语言? Python是脚本语言 脚本语言(Scripting language)是电脑编程语言,因此也…