5.2.2 递归 ppt课件-2023新浙教版(2019)《高中信息技术》选修1.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《5.2.2 递归 ppt课件-2023新浙教版(2019)《高中信息技术》选修1.pptx》由用户(Q123)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高中信息技术 5.2.2 递归 ppt课件_2023新浙教版2019高中信息技术选修1 5.2 ppt 课件 _2023 新浙教版 2019 高中 信息技术 选修 下载 _必修2 信息系统与社会_教科版(2019)_信息_高中
- 资源描述:
-
1、5.2.2 递归大问题的解决中嵌套着与原问题相似的规模较小的问题。这种解决问题的方式在计算机科学中称为递归,通过函数自己调用自己来实现,即一个函数在其定义中直接或间接调用自身的一种方法。在数据结构与算法设计中,递归十分有用,它往往能使函数的定义和算法的描述简洁且易于理解,极大地减少程序代码量。如前面学过的的二叉树,由于其本身固有的递归特性,特别适合用递归的形式来描述。能采用递归描述的算法通常有这样的特征:为求解规模为N的问题,设法将它分解成规模较小的问题,然后从这些小问题的解中方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法。当递归到达某个边界,如问题规模缩减为0或1
2、时,能直接得解。因此,在设计递归算法时,要满足两个条件:确定递归公式和递归结束条件。例:利用递归算法求n的阶乘(n!=1*2*n)。由数学知识可知,n阶乘的递归定义为:它等于n乘以n-1的阶乘,即n!=n*(n-1)!,并且规定0!=1。设函数fac(n)=n!,则fac(n)可表示为:fac(n)=1 (n=0)n*fac(n-1)(n0)按照这个公式,可以将求n!的问题转化成求(n-1)!的问题;而求(n-1)!的问题,又可以转化成求(n-2)!的问题;求(n-2)!的问题,又可以转化成求(n-3)!的问题,如此继续,直到最后转化成求0!的问题。再反过来,依次求出1!,2!,直到最后求出n
3、!。因此,在该问题中,递归公式是fac(n)=n*fac(n-1),当n=0时递归结束。求n的阶乘的相应的程序及测试结果如下:def fac(n):if n=0:s=1 else:s=n*fac(n-1)return sprint(fac(3)当主程序执行函数fac(3)时,引起第1次函数调用,进入函数后,参数n=3,应执行计算3*fac(2)。直到计算fac(0),将引起对函数fac的第4次调用。以上调用的执行和返回情况,如下图所示。fac(3)3*fac(2)第1次调用第2次调用2*fac(1)第3次调用1*fac(0)第4次调用1递归调用过程返回值1返回值1返回值2返回值6对于阶乘问题,
4、可以在原程序上通过添加一条语句来跟踪参数n的变化情况:def fac(n):if n=0:s=1 else:print(str(n)+*fac(+str(n-1)+)s=n*fac(n-1)return sprint(fac(3)3*fac(2)2*fac(1)1*fac(0)6利用迭代和递归思想解决问题时有何区别?算法实现时两者有哪些优缺点?迭代的思想,是一种由旧值不断推出新值的过程。它包括三个方面:一、确定迭代变量;二、建立迭代关系式;三、控制迭代过程,使程序能够停止下来。递归思想,是一种把数据规模较大、较复杂的问题分解成规模较小的问题,进而构造出整个问题解的思想方法。递归算法的执行过程分
展开阅读全文