全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

浅析python递归函数和河内塔问题

关于递归函数:

  函数内部调用自身的函数。

以n阶乘为例:

  f(n) = n ! = 1 x 2 x 3 x 4 x...x(n-1)x(n) = n x (n-1) !

def factorial(n):
   if n==1:
     return 1
   return n * f(n-1)

//调用过程如下:

>>f(5)
>>5 * f(4)
>>5 * 4 * f(3)
>>5 * 4 * 3 * f(2)
>>5 * 4 * 3 * 2 * f(1)
>>5 * 4 * 3 * 2 * 1
>>120

从上面的例子可以直观得看到递归函数在不断的调用自己的函数,直到n==1(函数出口)。

关于河内塔:

规则:

  1. 三根柱子,A,B, C

  2. A 柱子上的盘子从小到大 排列,最上面的是最小的,最下面的是最大的。

  3. 将A上的盘子移动到C上,移动过程中始终保持,最大的在下面,最小的在上面。

假设 A 柱子上有一个盘子,可以直接从A移动到C完成:

  A --> C

假设 A 柱子上有两个盘子,需要借助B,移动到C:

A --> B

A --> C

B --> C

将A 最上面的盘(2-1)移动到B,然后将A中剩下一块盘移动到C,最后将B中的盘移动到C

假设 A 柱子上有三个盘子,需要借助B移动A 上面的两个盘,然后将A剩下最大的盘移动到C,最后将B中的盘移动到C。

A --> C

A --> B

C --> B  //这三步将A上前两个盘子移动到B

A --> C //这一步将A上最大的盘子移动到C

B --> A

B --> C

A --> C //后面这三步将B上的盘子移动到C

原理是将 A 上的(n-1) 块盘移动到B,然后A中剩下的,也是最大的一块盘移动到C,最后将B上(n-1)块盘移动到C。

def Hanoi(n , a, b, c):
  if n==1:
    print (" Hanoi Tower move", a, "-->", c)
    return
  Hanoi(n-1, a, c, b)
  Hanoi(1, a, b, c)
  Hanoi(n-1, b, a, c)
print (" When there is 1 ring on A")
Hanoi(1, 'A', 'B', 'C')
print (" When there are 2 rings on A")
Hanoi(2, 'A', 'B', 'C')
print (" When there are 3 rings on A")
Hanoi(3, 'A', 'B', 'C')
print(" When there are 4 rings on A")
Hanoi(4, 'A', 'B', 'C')

以上所述是小编给大家介绍的python递归函数和河内塔问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# python递归函数  # python河内塔  # 浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器  # Python进阶之递归函数的用法及其示例  # Python递归函数定义与用法示例  # Python 递归函数详解及实例  # 讲解Python中的递归函数  # python实现斐波那契递归函数的方法  # 提升Python效率之使用循环机制代替递归函数  # 递归  # 河内  # 上有  # 的是  # 后将  # 小编  # 这三  # 自己的  # 在此  # 给大家  # 可以直接  # 为例  # 在上面  # 所述  # 给我留言  # 始终保持  # 从小到大  # 感谢大家  # 过程中  # 三根 


相关文章: 武清网站制作公司,天津武清个人营业执照注销查询系统网站?  如何通过西部建站助手安装IIS服务器?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  如何通过虚拟主机快速搭建个人网站?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  建站主机CVM配置优化、SEO策略与性能提升指南  如何在IIS中新建站点并配置端口与物理路径?  如何快速搭建高效WAP手机网站吸引移动用户?  小型网站制作HTML,*游戏网站怎么搭建?  如何选择美橙互联多站合一建站方案?  如何做静态网页,sublimetext3.0制作静态网页?  建站主机选虚拟主机还是云服务器更好?  高端建站三要素:定制模板、企业官网与响应式设计优化  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  活动邀请函制作网站有哪些,活动邀请函文案?  网站制作模板下载什么软件,ppt模板免费下载网站?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  Python多线程使用规范_线程安全解析【教程】  如何快速上传自定义模板至建站之星?  如何快速建站并高效导出源代码?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  西安大型网站制作公司,西安招聘网站最好的是哪个?  Android自定义listview布局实现上拉加载下拉刷新功能  建站之星如何配置系统实现高效建站?  广州美橙建站如何快速搭建多端合一网站?  如何在云虚拟主机上快速搭建个人网站?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  如何挑选高效建站主机与优质域名?  如何获取免费开源的自助建站系统源码?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  高端建站如何打造兼具美学与转化的品牌官网?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  建站之星24小时客服电话如何获取?  如何快速生成可下载的建站源码工具?  网站制作报价单模板图片,小松挖机官方网站报价?  电商网站制作价格怎么算,网上拍卖流程以及规则?  黑客如何通过漏洞一步步攻陷网站服务器?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  网站制作的步骤包括,正确网址格式怎么写?  宝塔面板创建网站无法访问?如何快速排查修复?  南平网站制作公司,2025年南平市事业单位报名时间? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。