第4章递推.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章递推

Visual FoxPro (3) 计算处理顺推算法 f(1)=a;f(2)=b; /* 用a,b赋初值 */ for(i=3;i=n;i++) for(j=1;j=i-1;j++) { 对f(1—i-1)计算处理 f(i)=递推关系式; /* 递推得f(i) */ } printf(f(n)); /* 输出解f(n) */ (4) 状态不确定的顺推算法 f(1)=a;f(2)=b;k=2; /* 用a,b赋初值 */ for(i=2;i=n;i++) for(j=1;j=i-1;j++) {对f(1—i-1)计算处理 k++; f(k)=递推关系式; /* 递推得f(k) */ } printf(f(k)); /* 输出解f(k) */ 设递推的二维数组为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) */ 当递推关系包含两个或两个以上关系式时,通常应用多关系分级递推算法求解。 (6) 多关系分级递推算法 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) */ 4.2 递推数列 递推算法设计: 注意到F数列与L数列的递推关系相同,可一并处理这两个数列。设置一维数组f(n),数列的递推关系为 f(k)=f(k-1)+f(k-2) (k2) 注意到F与L两个数列初始值不同,在输入整数p选择数列(p=1时为F数列,p=2时为L数列)后,初始条件可统一为 f(1)=1,f(2)=2*p-1 scanf(%d,p); /* 选定数列 */ scanf(%d,n); f[1]=1; f[2]=2*p-1; s=f[1]+f[2]; /* 赋初值 */ for(k=3;k=n;k++) { f[k]=f[k-1]+f[k-2]; /* 实施递推 */ s+=f[k]; /* 实施求和 */ } printf(第%d项为:%ld, ,n,f[n]); printf(前%d项之和为:%ld \n,n,s); 4.2.2 分数数列 【例4.1】 老师写出一个递推分数数列的前6项: 1/2, 3/5, 4/7, 6/10, 8/13, 9/15, ...,引导学生注意观察数列的构成规律:第i项的分母d与分子c存在以下关系:d=c+i,而分子c为与前i-1项中的所有分子、分母均不相同的最小正整数。 试求出该数列的第2008项,并求出前2008项中的最大项。 1. 算法设计 注意到递推需用到前面的所有项,设置数组c(i)表第i项的分子,d(i)表第i项的分母(均表现为整数)。 初始条件:c(1)=1,d(1)=2;c(2)=3,d(2)=5。 递推关系:d(i)=c(i)+i; c(i)为与前i-1项中的所有分子、分母均不相同的最小正整数。 递推过程描述: c(1)=1;d(1)=2; c(2)=3;d(2)=5; /* 数组元素赋初值 */ for(i=3;i=n;i++) for(k=c(i-1)+1;kd(i-1);k++) {t=0; /* k穷举探求第i项分子c */ for(j=1;j=i-1;j++) if(k==d(j)) /* 若k与d(j)相同则返回 */ {t=1;break;} if(t==0) {c(i)=k;d(i)=k+i; /* 给c(i),d(i)赋值 */ break;} } (1) 递推算法设计 设置k循环(k=1,2,…,n,其中n为输入整数),在k循环外赋初值:a=2;b=3;s=0;在k循环中比较赋值: 当ab时,由赋值f[k]=a确定为序列的第k项;

文档评论(0)

wuyuetian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档