- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第2节迭代与递归(2课时)
第5章数据结构与算法
浙教版(2019)选修一
PART01
迭代
新课导入
想
想
一
某饲养场引进了1对刚出生的新品种兔子,第2个月进入成熟期,第3个月开始生育兔子,新生的兔子成熟后的下月又会新生1对兔子……若所有的兔子都不会死去,则到第12个月时,该饲养场共有多少对兔子?
新课导入
兔子繁殖过程:
1月:兔①新生,共1对
2月:兔①成熟,共1对
3月:兔①生兔②,共2对
4月:兔①生兔③,兔②成熟,共3对
5月:兔①生兔④,兔②生⑤,兔③成熟,共5对
6月:兔①生兔⑥,兔②生兔⑦,兔③生兔⑧,兔④⑤成熟,共8对
......
迭代算法
新课导入
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月
…月
1对
1对
2对
3对
5对
8对
13对
21对
34对
55对
89对
144对
…对
(元素的入栈顺序和出栈顺序相反)
规律:第3月开始,当月兔子数=上月兔子数+当月新生兔子数=上月兔子数+上上月兔子数
f1=1#1月兔子数
f2=1#2月兔子数
i=3
whilei=12:
f=f1+f2
f1=f2
f2=f
i+=1
print(f第{i-1}月共有{f}对兔子“)
新课导入
想
想
一
第一天往钱罐子里面投入1元,存钱罐总金额为1元;第二天往钱罐里面投入2元,存钱罐总金额为3元;第三天往存钱罐里面投入3元,存钱罐里面总金额为6元;那么第n天时存钱罐里面一共有多少钱?
新课导入
我们利用循环不断执行累加求和,从原值s算出新值s最终计算出存钱罐的钱数,这种将变量从原值递推出一个新值的算法,我们称之为迭代算法。
s=s+i
一
概念
迭代是重复反馈的过程,其目的通常是为了接近并达到所需的目标或结果。每一次对过程的重复被称为一次迭代,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。
特性
迭代算法是用计算机解决问题的一种基本方法,它利用计算机运算速度快、适合做重复性操作的特点,让计算机重复执行一组指令(或一定步骤)这组指令(或这些步骤)每执行一次,都会将变量从原值推出一个新值。
一
03
02
01
利用迭代算法解决问题,
需要做好三个方面
确定迭代变量
在能够用迭代算法处理问题中,至少具有一个直接或间接地不断有旧值推出新值的变量,这个变量就是迭代变量。
建立迭代关系式
所谓迭代关系式,指如何从变量的前一个值推出下一个值的公式(或关系)。
控制迭代过程
迭代过程在经过若干次重复执行以后要能结束,因此,要设定迭代结束的条件。
(元素的入栈顺序和出栈顺序相反)
迭代算法的设计方法
一
迭代算法:利用计算机运算速度快、适合做重复性操作的特点,让计算机重复执行一组指令,这组指令每执行一次时,都会将变量从原值递推出一个新值,即由旧值不断推出新值的过程。
f1=1#1月兔子数
f2=1#2月兔子数
i=3
whilei=12:
f=f1+f2
f1=f2
f2=f
i+=1
print(f第{i-1}月共有{f}对兔子“)
迭代算法:
①确定迭代变量
②建立迭代关系式
③控制迭代过程
一
一
一
迭代变量迭代过程
当前后两次求出的x值(xn和xn+1)的差的绝对值为0.000002时,停止迭代,得出2的平方根约为1.414214。
程序:
a=int(input(请输入一个需要求其平方根的数:))
x=a/2
while((abs((x+a/x)/2–x))0.00001):
x=(x+a/x)/2
print(a,的平方根约为,round((x+a/x)/2,6))
测试结果:
请输入一个需要求其平方根的数:2
2的平方根约为1.414214
一
欧几里得算法又称辗转相除法,用于计算两个整数m,n的最大公约数。基于定理:
gcd(m,n)=gcd(n,mmodn)
即:整数m,n的最大公约数等于n和m除以n的余数的最大公约数。
欧几里得算法在执行时,也是一个反复迭代的过程,直到余数等于0为止。
python代码
m,n是迭代变量,迭代关系是n→m和m%n→n,由旧值推出新值,然后循环执行,直到余数为0,结束迭代。
一
只需知道数据之间相互链接的顺序
通常是为了接近并达到所需的目标或结果,对过程进行重复,每一次重复得到的结果会被用来作为下一次的初始值。这种用计算机解决问题的一种基本方法是()
A.迭代法B.查找法
C.分析法
您可能关注的文档
最近下载
- 基于单片机的智能照明系统.doc VIP
- 东莞理工学院plc试卷及答案.docx VIP
- 西单商圈专题报告ppt课件.pptx VIP
- 在线网课学习课堂《学术交流英语(哈工 )》单元测试考核答案.docx VIP
- 一年级语文复习复习要点.pdf VIP
- 330MW火电机组凝结水节流改造方案与实施分析.doc VIP
- 12J01 重庆市房屋建筑及市政基础设施工程安全文明施工标准图集(一)施工围挡(1类)DJBT-063.docx VIP
- 二年级数学上册100道口算题大全 (每日一套,共26套).pdf VIP
- 基于凝结水节流的火电机组控制系统设计.docx VIP
- 数字信号处理试题及答案.docx
原创力文档


文档评论(0)