• 汉诺塔游戏python实现

def move(n, a, b, c):

if n == 1:

print('move', a, '-->', c)

else:

move(n-1, a, c, b)

move(1, a, b, c)

move(n-1, b, a, c)

例如:

move(4, 'a', 'b', 'c')

执行步骤:

1.先执行move(4, 'a', 'b', 'c')

其中move(4, 'a', 'b', 'c')包括 move(3,  'a', 'c', 'b')

move(1, 'a', 'b', 'c')

move(3, 'b', 'a', 'c')

2. 然后执行move(4, 'a', 'b', 'c')中的move(3,  'a', 'c', 'b')

其中move(3,  'a', 'c', 'b') 包括move(2, 'a', 'b', 'c')

move(1, 'a', 'c', 'b')

move(2, 'c', 'a', 'b')

3.然后依次执行move(3,  'a', 'c', 'b') 中的move(2, 'a', 'b', 'c')中的所有函数,因为n=1满足了递归结束条件,至此move(2, 'a', 'b', 'c') 执行完毕

其中move(2, 'a', 'b', 'c')  包括move(1, 'a', 'c', 'b')

move(1, 'a', 'b', 'c')

move(1, 'b', 'a', 'c')

4.然后回到move(3,  'a', 'c', 'b')执行move(2, 'a', 'b', 'c')之后的代码,至此move(3,  'a', 'c', 'b')执行完毕

5.最后回到move(4, 'a', 'b', 'c')执行move(3, 'a', 'c', 'b') 之后的代码,至此move(4, 'a', 'b', 'c') 执行完毕 ,整个汉诺塔游戏完成了

  • 总结

递归函数,层层递归的时候,先要一直算到递归条件结束,然后再一层一层的返回计算,就可以递归出结果了。

汉诺塔游戏的python实现——递归函数相关推荐

  1. python汉诺塔游戏_Python实战:搭建汉诺塔小游戏,快和小伙伴一起玩玩吧

    汉诺塔游戏:看谁能在短时间内将排好顺序的圈,按同样的顺放在另一根柱子上,每次只能动一个. 今天用python搭建汉诺塔小游戏(简约版) 代码亲测有效!源代码如下: #左中右塔用一个列表存储 left ...

  2. Python案例:汉诺塔游戏

    Python案例:汉诺塔游戏 游戏规则: (1)一次只能移动一个环 (2)小环必须在大环之上

  3. 【python】 turtle实现汉诺塔游戏动画过程

    [python] turtle实现汉诺塔游戏动画过程 import turtle class Stack: #面向对象,定义一个类def __init__(self):self.items = []d ...

  4. 最简单的python语言实现汉诺塔游戏

    最简单的python语言实现汉诺塔游戏 实现代码 def hanoi(n,ch1,ch2,ch3):if n==1:print(ch1, '->', ch3)else:hanoi(n - 1, ...

  5. 汉诺塔游戏java下载,利用python实现汉诺塔游戏

    本文实例为大家分享了python实现汉诺塔游戏的具体代码,供大家参考,具体内容如下 一.汉诺塔 汉诺塔问题是一个经典的递归问题,对于这个问题,我们可以把它简单的去看成是如何用n-1去表示n. 在A,B ...

  6. 汉诺塔游戏规律,让汉诺塔沦为体力劳动!(后附汉诺塔解法Python源码)

    记住这个规律,以后玩汉诺塔基本上就是体力劳动了. 规律: 先小后大,单左双右,循环. 设3个柱子分别是甲,乙,丙,把3根柱子看成一个循环,也就是说,甲的右边是乙,乙的右边是丙,而丙的右边则回到甲,同理 ...

  7. python汉诺塔问题输入层数输出整个移动流程_python 实现汉诺塔游戏

    一.汉诺塔问题 1. 问题来源 问题源于印度的一个古老传说,大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆 ...

  8. python汉诺塔游戏_python求解汉诺塔游戏

    本文实例为大家分享了python求解汉诺塔游戏的具体代码,供大家参考,具体内容如下 一.问题定义 百度百科定义:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.据说大梵天创造世界的时候做了三 ...

  9. python玩汉诺塔游戏攻略

    def hanio(n,x,y,z):'汉诺塔游戏攻略'if n == 1:print('%s-->%s'%(x,z))else:#将n-1个从x放到y上 借助zhanio(n-1,x,z,y) ...

最新文章

  1. 深度解析 H.265 视频解决方案
  2. JAVA单向/双向链表的实现
  3. UGUI与NGUI的区别汇总
  4. Silverlight之Button控件简单自定义
  5. Python使用装饰器捕获异常,并写入日志,不中断进程
  6. 关于加载离线SHP文件、geodatabase文件所遇到的路径问题
  7. Servlet destroy()回收机制
  8. u-boot编译连接分析
  9. hihocoder编程练习赛91:相邻字符串
  10. ubuntu双系统怎么完全删除ubuntu系统(主要是删除引导)
  11. 氨基酸密码子表(Amino Acid Codon)
  12. 怎样编辑PDF,PDF怎么删除页面
  13. tensorflow系统学习(1):如何使用tensorflow
  14. 动态规划解决贴纸拼字游戏
  15. 图片文件转Bitmap-Bitmap转NV21-ARGB数据转化为NV21数据
  16. mac 查ip linux,如何通过mac地址查ip,手把手教你Mac怎么查看ip地址
  17. 骑缝章 Java_Java 在PDF中添加骑缝章
  18. Geoserver发布wms地图服务的样式制作(地图工具篇.4)
  19. 危险WiFi登上热搜榜 百度安全中心发布世界杯预警
  20. 搜索引擎ElastaticSearch使用

热门文章

  1. 互联网1分钟 | 0121 Vlog陌生人社交APP「自言」为年轻人打造生活视频分享平台;周鸿祎:智能设备要警惕“海豚音攻击”...
  2. 视频智能去水印:从数学建模到工程实现
  3. zabbix监控搭建
  4. PHP-Codeigniter:实习笔记1
  5. linux cut 命令(转)
  6. java适配器各三种_适配器三种
  7. Navicat数据库非常实用的技巧 (create_time、edit_time 设置默认值和自动更新)
  8. Mybatis 关于同一条SQL语句实现批量插入和更新(SaveOrUpdate)完整版
  9. vue组件的基本使用:入门示例
  10. CDH 版本Hadoop Yarn配置容量调度器(默认是公平调度器)