- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一讲递推与迭代
第 1 讲;主要内容;1.1 递推概述;1. 实施递推的步骤
(1) 确定递推变量
(2) 建立递推关系
(3) 确定初始(边界)条件
(4) 对递推过程进行控制
; 2. 递推算法框架描述;(2) 简单逆推算法
逆推即从后往前推,从已得的规模为n,n-1,
…,i+1的一系列解,推出问题规模为 i的解,直至得到规模为1的解。
简单逆推算法框架描述:
f(n—i+1)=初始值; /* 确定初始值 */
for(k=i;k=1;k--)
f(k)=递推关系式;/* 实施递推 */
printf(f(1)); /* 输出解f(1) */
;
设递推的二维数组为f(k,j),1≤k≤n,1≤j≤m。
二维数组顺推算法框架描述:
f(1,1—m)=初始值; /* 赋初始值 */
for(k=2;k=n;k++)
for(j=1;j=m;j++)
f(k,j)=递推关系式; /* 实施递推 */
printf(f(n,m)); /* 输出解f(n,m) */; 当递推关系包含两个或两个以上关系式时,通常应用多关系分级递推算法求解。
(4) 多关系分级递推算法
f(1—i-1)=初始值; /* 赋初始值 */
for(k=i;k=n;k++)
if(条件1)
f(k)=递推关系式1; /* 据递推关系1递推 */
if(条件2)
f(k)=递推关系式2; /* 据递推关系2递推 */
……
if(条件m)
f(k)=递推关系式m; /* 据递推关系m递推 */
printf(f(n)); /* 输出解f(n) */;1.2 递推数列;递推过程描述:
a=2;b=3; * 为递推变量a,b赋初值 */
for(k=1;k=n;k++)
{if(ab)
{f[k]=a;a=a*2;}/* 用a给f[k]赋值 */
else
{f[k]=b;b=b*3;}/* 用b给f[k]赋值 */
}
在这一算法中,变量a,b是变化的,分别代表2的幂与3的幂。;1.2.2 双关系递推数列;if(2*m(p2)3*m(p3))
{ m(i)=2*m(p2)+1;p2++;}
if(2*m(p2)3*m(p3))
{ m(i)=3*m(p3)+1;p3++;}
特别注意:两队列若出现相等时,给m数组赋值后,两排头都要增1。
if(2*m(p2)==3*m(p3))
{ m(i)=2*m(p2)+1;
p2++; p3++;
/* 为避免重复项,P2,p3均须增1 */
} ;1.3.1 猴子爬山问题
【例1.4】 一个顽猴在一座有30级台阶的小山上爬山跳跃,猴子上山一步可跳1级,或跳3级,试求上山的30级台阶有多少种不同的爬法。
1. 递推算法设计
一般地有递推关系:
f(k)=f(k-1)+f(k-3) (k3)
初始条件有:
f(1)=1; 即1=1。
f(2)=1; 即2=1+1。
f(3)=2; 即3=1+1+1;3=3。; int k,n; long f[1000];
printf(请输入台阶总数n:);
scanf(%d,n);
f[1]=1;f[2]=1;f[3]=2;
/* 数组元素赋初值 */
for(k=4;k=n;k++)
f[k]=f[k-1]+f[k-3];
/* 按递推关系实施递推 */
printf(s=%ld,f[n]);;3. 问题引申
把问题引申为爬山n级,一步有m 种跨法,一步跨多少级均从键盘输入。
(1) 分级递推算法设计
设爬山t台阶级的不同爬法为f(t),设从键盘输入一步跨多少级的m个整数分别为x(1), x(2), …, x(m)
(约定x(1)x(2)…x(m)n)。
这里的整数x(1), x(2), …, x(m)为键盘输入,事前并不知道,因此不能在设计时简单地确定f(x(1)),f(x(2)),…。
事实上,可以把初始条件放在分级递推中求取,应用多关系分级递推算法(6)完成递推。; (2) 探讨f(t)的递推关系
当tx(1)时,f(t)=0;f(x(1))=1。(初始条件)
当x(1)t≤x(2)时,第1级递推:f(t)=f(t-x(1));
当x(2)t≤x(3)时,第2级递推:f(t)=f(t-x(1))+f(t-x(2));
……
一般地,当x(k
您可能关注的文档
- 第7章房地产开发投资.ppt
- 第7节店长培训实务.ppt
- BIM的技术应用现状-进展研究.ppt
- 第7章:常见问题和事故的2.ppt
- 第7讲 现代汉语词汇的组成和发誟1).ppt
- 第7章长期股权投资(090429修订).ppt
- 第7章女性与爱情、婚姻和家庭.ppt
- CCC最新工厂检查要求讲训教材.ppt
- 第7讲中国民俗之藏族.ppt
- 第7节二阶常系数非齐次线性微分方程.ppt
- 浙江衢州市卫生健康委员会衢州市直公立医院高层次紧缺人才招聘11人笔试模拟试题参考答案详解.docx
- 浙江温州泰顺县退役军人事务局招聘编外工作人员笔试备考题库及参考答案详解一套.docx
- 江苏靖江市数据局公开招聘编外工作人员笔试模拟试题及参考答案详解.docx
- 广东茂名市公安局电白分局招聘警务辅助人员40人笔试模拟试题带答案详解.docx
- 江苏盐城市大丰区住房和城乡建设局招聘劳务派遣工作人员4人笔试模拟试题带答案详解.docx
- 浙江舟山岱山县东沙镇人民政府招聘笔试模拟试题及参考答案详解1套.docx
- 最高人民检察院直属事业单位2025年度公开招聘工作人员笔试模拟试题含答案详解.docx
- 浙江金华市委宣传部、中共金华市委网信办所属事业单位选调工作人员笔试备考题库及答案详解1套.docx
- 广东深圳市党建组织员招聘40人笔试模拟试题及答案详解1套.docx
- 江苏南京水利科学研究院招聘非在编工作人员4人笔试模拟试题及参考答案详解.docx
最近下载
- 《中国结核病预防控制工作技术规范(2020年版)》.PDF VIP
- 2023年北京市中考英语真题(含答案) .pdf VIP
- 南通大学2023-2024学年《病理学》期末考试试卷(A卷)附参考答案.docx
- 胸部损伤-教学课件.ppt VIP
- 某银行数据中心搬迁整体实施方案.pdf VIP
- 麦肯锡中国银行业CEO季刊(2020年秋)-麦肯锡-224页正式版.pdf VIP
- 国家公务员录用考试体检标准.doc VIP
- 入党申请书时事政治精选五篇.docx VIP
- 农村公路安全生命防护工程监理规划49943.doc VIP
- 高中英语3500词【打印版】乱序版3500词汇(带音标120页).pdf VIP
文档评论(0)