鱼C论坛

 找回密码
 立即注册
查看: 4665|回复: 32

[技术交流] 《零基础入门学习Python》24讲内容归纳

[复制链接]
发表于 2015-10-11 15:38:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
小牛有话说:
        各位鱼油,大家好。我是小牛,如果您已经看完或者正在看鱼神的《零基础入门学习Python》视频,想随时复习前面的知识点却又不想花太多时间和精力重翻视频,来这里《零基础入门Python学习》整理瞅瞅小牛呕心做的的视频内容的总结吧^_^,如果觉得有用的话,可以点击帖子右上角的“订阅”按钮,这样以后就能够随时看到小牛做的最新的整理了。
        另外,小牛十一回了趟家,结果就将更新耽搁了,这里对关注小牛帖子鱼油们说声抱歉了,后面小牛会尽力加快更新速度,争取在10月底更新到类和对象部分。
本期主要内容导读:
        这一期我们归纳一下鱼神第二十四讲“递归:汉诺塔”。这一期里面鱼神主要是通过递归算法实现汉诺塔游戏来秀一下递归算法的优越性,主要牵涉到了汉诺塔游戏的基本规则,递归算法实现汉诺塔游戏的思路以及递归函数的定义过程。下面我们就来详细介绍一下各个知识点吧~~~~~~
1. 汉诺塔游戏的基本规则
        汉诺塔游戏有三根柱子,分别为x,y,z。已知初始时在x柱子上有n个盘子,盘子大小各不相同,且大的在下,小的在上;要求将这n个盘子按同样顺序叠放到z柱子上,且要求每次只能转移一个盘子,且盘子在柱子上的顺序必须保证大的在下,小的在上。
2. 递归算法实现汉诺塔游戏思路
        递归算法的思想是“分制”方法,即将一个复杂问题分解为几个较复杂问题,再继续讲较复杂问题继续分解为次较复杂问题,继续将次较复杂问题往下分解直到分解为一个能直接解决的简单问题,然后再回过去。这里,我们用递归方法解决汉诺塔游戏的思路如下:
        将n个盘子从x柱子转移到z柱子问题分解为三个问题:1)将x柱子顶上的n-1个盘子转移到y柱子上;2)将x柱子最后一个盘子转移到z柱子上;3)将
        y柱子上的n-1个盘子转移到z柱子上。
        依次将问题分解下去。。。。。。
3. 递归函数实现汉诺塔游戏过程
  1. def hanoi(n,x,y,z):                #n代表盘子数量,x,y,z代表相应柱子
  2.     global count                   #申明为全局变量,统计一共要移动盘子的次数
  3.     count += 1
  4.     if n == 1:                     #递归结束条件
  5.         print('%c->%c'%(x,z))      
  6.     else:
  7.         hanoi(n-1,x,z,y)           #将n-1盘子从x借助z移动到y
  8.         print('%c->%c'%(x,z))      #将最后一个盘子从x移动到z
  9.         hanoi(n-1,y,x,z)           #将n-1盘子从y借助x移动到z
  10. count = 0
  11. hanoi(3,'x','y','z')
  12. print('一共需要移动盘子的次数为%d次!'%count)
复制代码

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-11 20:59:30 | 显示全部楼层
赞一个,老实说,这个游戏不太好理解
不过,确实很能说明递归的强大而实用!

评分

参与人数 1鱼币 +1 收起 理由
醉酒青牛 + 1 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-11 21:14:01 | 显示全部楼层
{:1_1:}点赞
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-12 09:57:44 | 显示全部楼层
一起学习,共同进步。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-10-12 13:47:27 | 显示全部楼层
太空军校生 发表于 2015-10-12 09:57
一起学习,共同进步。

把我的招牌回复都说了,让小牛说什么呢,一起学习共同进步吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-10-12 13:51:22 | 显示全部楼层

好久不见咯,一起参与进来学习Python,这几天我看到一个帖子说什么才算入门,我一直觉得入门就好比学骑自行车,你会骑了就代表你入门了,而且以后就算你好久没有骑车,一样可以上车就能走。程序也是如此,什么时候我们能用程序来解决一些实际问题,而且就算过一段时间没用,也能在要用的时候信手拈来。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-10-12 13:52:37 | 显示全部楼层
xuff 发表于 2015-10-11 20:59
赞一个,老实说,这个游戏不太好理解
不过,确实很能说明递归的强大而实用!

说实话,我也没完全理解。希望咱们都尽早入门吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-13 09:03:44 | 显示全部楼层
既然已阅,必须给青牛兄一个赞!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-10-13 12:34:19 | 显示全部楼层
煈愛 发表于 2015-10-13 09:03
既然已阅,必须给青牛兄一个赞!

感谢支持:victory:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-15 15:07:44 | 显示全部楼层
明天就要学到这一节了,赞一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-10-15 16:05:03 | 显示全部楼层
旋转风 发表于 2015-10-15 15:07
明天就要学到这一节了,赞一个

加油学习,共同进步吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2015-11-3 00:06:48 | 显示全部楼层
对于汉诺塔的递归还稍稍有点糊涂:sad
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-3 00:07:58 | 显示全部楼层
继续努力
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-25 20:04:49 | 显示全部楼层
'%c->%c'%(x,z)   需要理解 %c 啊 %d啊 这些了 感觉好抽象啊!!!!mark !!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-25 22:59:49 | 显示全部楼层
cjfj114 发表于 2015-11-25 20:04
'%c->%c'%(x,z)   需要理解 %c 啊 %d啊 这些了 感觉好抽象啊!!!!mark !!!

其实就是字符串格式化操作符,看几遍前面的知识,习惯了你会爱上这种用法的:lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-11 16:28:05 | 显示全部楼层
然而还是云里雾里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-1-7 19:30:12 | 显示全部楼层
我正在看这个,思路明白可是代码运行不好理解,要是可以单步运行看看就好了。先给小牛点个赞
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-21 11:03:56 | 显示全部楼层
hanoi(n,x,y,z)的意思就是将n个盘子借助y从x移动到z上,这样x、y、z的意义就都知道了,我觉得这样就好理解了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-21 11:07:29 | 显示全部楼层
倒数第二行的代码不对吧,3应该改成n?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-7 11:01:31 | 显示全部楼层
zhangjuying2000 发表于 2016-5-21 11:07
倒数第二行的代码不对吧,3应该改成n?

没有错吧,他算的是三层的移动数,这不是在shell里写的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-24 13:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表