python学习路之递归练习

转载 2016年08月28日 17:39:12

汉诺塔的移动

汉诺塔:大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。

目标: 把A柱子上的n个盘子移动到C柱子
思路:n个盘子分解成两份 = 最底下的一个盘子 + 其他上面的(n-1)个盘子
递归思想:
1. 将前(n-1)个盘子从A移动到B上
2. 将最底下的最后一个盘子从A移动到C上
3. 将B上的(k-1)个盘子移动到C上
然后每个子目标又是一次独立的汉诺塔游戏,也就可以继续分解目标直到n为1

def move(n, a, b, c):
    if n==1:
       print(a, '-->', c)
       return  #注意细节,缺少return语句将死循环
     move(n-1, a, c, b)
     move(1, a, b, c)
     move(n-1, b, a, c)

相关文章推荐

王亟亟的Python学习之路(六)-递归,迭代,列表生成式

转载请注明出处:王亟亟的大牛之路最近事情比较多,也没什么时间学习。(借口,明明在偷懒) 难得空下来,就继续把文章写下去。(玩手游时间更多)在贴今天要写的内容之前还是先说一下某些概念!(概念还是很重要...

Python爬虫包 BeautifulSoup 学习(六) 递归抓取

之前的代码都是对单个静态页面进行抓取,这是人为简化的例子。爬虫的主要目的就是为了沿着网络抓取需要的内容。它们的本质是一种递归的过程。它们首先需要获得网页的内容,然后分析页面内容并找到另一个URL,然后...

python数据结构学习笔记-2016-11-11-01-递归

递归(recursion):通过将大问题分解成几个相对简单的且解法相同或类似的子问题,来将问题解决的方式。         10.1 递归函数          一个可以调用自身的函数称为递归函数...

Python学习笔记之遍历目录文件(递归和walk())

python中遍历指定目录下所有的文件和文件夹,包含多级目录,有两种方法,一种是通过递归思想去遍历,另一种是os模块的walk()函数 要列出目录结构 一.递归方法 #coding:utf-8...

python数据结构学习笔记-2017-01-08-01-N皇后问题、迷宫问题和跳马问题的递归解决

N皇后问题         棋盘ADT #-*-coding: utf-8-*- # 二维数组实现棋盘ADT from myarray2d import Array2D class Bo...

Python递归解决AOE网络最长路关键路径的问题

Python递归解决AOE网络最长路关键路径的问题 一鼓作气,再来一发 这是某同学在某公式宣讲会中笔试部分的一题,如下图: 如图:每一个项目都有完成时间和若干个前置条件,求总项目(或每一个项目)的...

简单的Python递归小游戏

  • 2015年10月21日 22:48
  • 433B
  • 下载

python 文件递归搜索文本转换

  • 2016年07月05日 20:07
  • 908B
  • 下载

File类递归练习+JAVA学习笔记-DAY23

统计该文件夹大小、删除该文件夹、拷贝、按层级打印、斐波那契数列、1000的阶乘所有零和尾部零的个数、约瑟夫环...

Python用递归实现字符串反转

  • 2014年10月08日 14:10
  • 145B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python学习路之递归练习
举报原因:
原因补充:

(最多只允许输入30个字)