- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
递推和迭代
迭代
迭代法也称辗转法,是一种不断用变量的旧值推出新值的过程。它是解决问题的一种基本方法,通过让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。
迭代算法的基本思想
为求一个问题的解x,可由给定的一个初值x0,根据某一迭代公式得到一个新的值x1,这个新值x1比初值x0更接近要求的值x;再以新值作为初值,即:x1→x0,重新按原来的方法求x1,重复这一过程直到|x1-x0|ε(某一给定的精度)。此时可将x1作为问题的解x。
迭代算法所需工作
确定迭代变量
建立迭代关系式
对迭代过程进行控制
迭代算法结构
迭代变量赋初值;
while (迭代终止条件)
{
根据迭代表达式,由旧值计算出新值;
新值取代旧值,为下一次迭代做准备;
}
【实例2-1】小李的银行存款
小李年初在银行存款1000元(一年定期)。他计划每年年底取出100元救助失学儿童。假设银行的存款利率不变,年利率为3%,年底利息自动计入本金。计算n年后,该账户上有多少存款。
【实例2-2】位平方和
把一个整数的每个数位都平方后求和,又得到一个整数,称这个整数为:位平方和。对新得到的整数继续这一运算过程… …
举例,给定整数4,则一系列结果为16,37,58,…
【实例2-3】求平方根
用迭代法求某个数a的平方根。已知求平方根的迭代公式为:
编程思路
先自定一个初值x0,作为a的平方根值,例如,取a/2作为x0的初值。利用迭代公式求出一个x1。此值与真正的a的平方根值相比,误差可能很大。
把新求得的x1代入x0中,准备用此新的x0再去求出一个新的x1。
利用迭代公式再求出一个新的x1的值,也就是用新的x0又求出一个新的平方根值x1,此值将更趋近于真正的平方根值。
比较前后两次求得的平方根值x0和x1,如果它们的差值小于指定的值(如0.000001),即达到要求的精度,则认为x1就是a的平方根值,执行步骤5;否则执行步骤2,即循环进行迭代。
迭代结束,输出结果x1。
递推
递推,是指从已知的初始条件出发,依据某种递推关系,逐次推出所要求的各中间结果及最后结果。
其中初始条件或是问题本身已经给定,或是通过对问题的分析与化简后确定。
递推算法求思路
当n=1时,解或为已知,或能方便地求得;
通过采用递推法构造算法的递推性质,能从已求得的规模为1、2、…、i−1的一系列解,构造出问题规模为i的解。
这样,程序可从i=0或i=1出发,重复地由已知至i−1规模的解,通过递推,获得规模为i的解,直至获得规模为n的解。
递推算法求解的问题的特点:
问题可以划分成多个状态
除初始状态外,其它各个状态都可以用固定的递推关系式来表示
递推算法求解所需工作
确定递推变量
建立递推关系
确定初始(边界)条件
对递推过程进行控制
递推法分类
递推法从递推方向可分为顺推与倒推。
顺推法是从已知条件出发,通过递推关系逐步推算出要解决的问题的结果的方法。
倒推法,就是在不知初始值的情况下,经某种递推关系而获知了问题的解或目标,从这个解或目标出发,采用倒推手段,一步步地倒推到这个问题的初始情况。
顺推是从条件推出结果,倒推从结果推出条件。
顺推算法结构
for (k=1; k=i−1; k++)
f[k]= 初始值;
// 按初始条件,确定初始值
for (k=i; k=n; k++)
f[k]= 递推关系式;
// 根据递推关系实施递推
coutf[n];
// 输出n规模的解f(n)
倒推算法结构
for (k=n; k=i+1; k--)
f[k]= 初始值;
// 按初始条件,确定初始值
for (k=i; k=1; k--)
f[k]= 递推关系式;
// 根据递推关系实施递推
coutf[1];
// 输出问题的初始情况f(1)
【实例2-4】马的行走路径
设有一个n*m的棋盘(2=n=50,2=m=50),在棋盘上任一点有一个中国象棋马。马行走的规则为:
(1)马走日字;
(2)马只能向右走,即如图所示的4种走法。
编写一个程序,输入n和m,找出一条马从棋盘左下角(1,1)到右上角(n,m)的路径。例如:输入n=4、m=4时,输出路径 (1,1)-(2,3)-(4,4)。这一路经如图所示。若不存在路径,则输出No!
编程思路
先将棋盘的横坐标规定为i,纵坐标规定为j,对于一个n×m的棋盘,i的值从1到n,j的值从1到m。棋盘上的任意点都可以用坐标(i,j)表示。
对于马的移动方法,用变量k来表示四种移动方向(1、2、3、4);而每种移动方法用
您可能关注的文档
- 1第一章溶液和胶体介绍.ppt
- 毕达哥拉斯讲的三角形的故事技术方案.pptx
- 闭合电路的欧姆定律(第1课时)技术方案.ppt
- 闭合电路欧姆定律之电路动态技术方案.ppt
- 编码器的工作原理技术方案.ppt
- 1固体晶格结构介绍.ppt
- 编译原理,清华大学,第2版-第10章目标程序运行时的存储组织技术方案.ppt
- 编译原理第01章概论技术方案.ppt
- 编译原理第三章(4-3)技术方案.ppt
- 编译原理设计实验说明和要求技术方案.ppt
- 2024年湖南省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年江西省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年安徽省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年福建省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年广东省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年河北省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年河南省高考英语试卷(含答案解析)+听力音频.docx
- 2024年湖北省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年湖南省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年江苏省高考英语试卷(含答案解析)+听力音频+听力原文.docx
文档评论(0)