位置:搜学搜课 > 新闻 > 广州口碑前几的Python开发培训机构汇总
广州千锋教育-中国IT职业教育良心品牌,成立教研中心,推出贴近企业需求的线上线下技能培训课程。千锋教育大数据+Python人工智能六维全息课程:秉承从理论到实践,从应用到原理,从细节上学习掌握大数据分布式系统下所使用到的存储、计算、调度、资源管理等不同方面,另外从应用场景离线、实时、交互查询等方面,结合企业中不同行业、核心业务开发的有针对性的项目实战,如数据治理,离线、实时数仓,离线、实时数据同步、知识图谱,元数据管理与血缘构建,数据质量、NewSQL等核心模块,从深度和广度上构建完善的知识体系,在学习思维和经验能力上达到架构级别。
在学习Python的时候,大家难免会遇到汉诺塔问题,这是在学习其他编程语言也绕不过去的经典问题之一。本文就带大家了解什么是汉诺塔问题,并为大家解决Python中的此类问题。感兴趣的小伙伴就赶紧看下去吧!
1、什么是汉诺塔问题?
汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
2、汉诺塔问题在Python中可以抽象如下:
(1)3根圆柱A,B,C,其中A上面串了n个圆盘。
(2)这些圆盘从上到下是按从小到大顺序排列的,大的圆盘任何时刻不得位于小的圆盘上面。
(3)每次移动一个圆盘,较终实现将所有圆盘移动到C上。
3、利用Python语言接近自然语言的特性,开发者可以更容易的将递归算法翻译成程序语句,需要的代码量很小。汉诺塔问题的解决步骤用语言描述很简单,仅三步:
A,B,C三个圆柱,分别为初始位,过渡位,目标位,设A柱为初始位,C位为较终目标位
(1)将较上面的n-1个圆盘从初始位移动到过渡位
(2)将初始位的较底下的一个圆盘移动到目标位
(3)将过渡位的n-1个圆盘移动到目标位
对于递归算法中的嵌套函数f(n-1)来说,其初始位,过渡位,目标位发生了变化
具体代码如下:
def move(n,a,b,c): #n为圆盘数,a代表初始位圆柱,b代表过渡位圆柱,c代表目标位圆柱
if n==1:
print(a,'-->',c)
else:
move(n-1,a,c,b) #将初始位的n-1个圆盘移动到过渡位,此时初始位为a,上一级函数的过渡位b即为本级的目标位,上级的目标位c为本级的过渡位
print(a,'-->',c)
move(n-1,b,a,c) #将过渡位的n-1个圆盘移动到目标位,此时初始位为b,上一级函数的目标位c即为本级的目标位,上级的初始位a为本级的过渡位
以上就是关于汉诺塔问题的Python学习总结,希望可以帮到大家。
尊重原创文章,转载请注明出处与链接:http://www.soxsok.com/wnews732502.html 违者必究! 以上就是关于“广州口碑前几的Python开发培训机构汇总”的全部内容了,想了解更多相关知识请持续关注本站。