递推算法PPT课件.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文档。上传文档
查看更多
递推算法; 递推是计算机数值计算中的一个重要算法。思想是通过数学推导,将复杂的运算化解为若干重复的简单运算,以充分发挥计算机善长于重复处理的特点。;例:切煎饼;令q(n)为切n刀能分成的块数,从图中可见: q(1)=1+1=2 q(2)=1+1+2=4 q(3)=1+1+2+3=7 q(4)=1+1+2+3+4=11 在切法上让每两条线都有交点,则有 q(n)=q(n-1)+n q(0)=1 有了递推方程,程序就很简单。;解决递推问题的一般步骤 ;递推的形式; 问题1、杨辉三角形(YHTriangle) 【问题描述】 杨辉三角是一个由数字排列成的三角??数表,一般形式如下:    1    1 1    1 2 1    1 3 3 1    1 4 6 4 1    1 5 10 10 5 1    1 6 15 20 15 6 1    1 7 21 35 35 21 7 1   【输入数据】 一个正整数n,表示三角形的行数 【输出数据】 n行杨辉三角形 ;问题分析: 观察杨辉三角形不难看出,数字是有规律的,从第3行开始,每行第1个和最后一个值为1,其他值为上方和左上方数字和。 设二维数组c[i,j]存储行坐标为i、列坐标为j位置上元素值,则 c[i,j]= c (i-1,j-1)+ c (i-1,j) 每个元素值由其左上方和上方元素求和得到,因此,可以一行地求得元素值。 算法描述: 1.定义二维数组C存放杨辉三角形的值; 2.赋初值:c[1,1]:=1; c[2,1]:=1;c[2,2]:=1; 3.用二重循环控制二维数组下标的变化,从上到下,从左到右求元素值; 4.输出杨辉三角形。 ;程序设计: program YHtriangle; const n = 20; //输出行数 var c:array[0..n,0..n]of longint; i,j,m:longint; begin c[1,1]:=1; //赋初值 c[2,1]:=1;c[2,2]:=1; for i:=3 to n do //从第3~ n行 begin c[i,1]:=1; for j:=2 to i-1 do //从第2~ i-1列 c[i,j]:=c[i-1,j-1]+c[i-1,j]; //求二维数组元素值 c[i,i]:=1; ; end; for i:=1 to n do for j:=1 to i do if j=i then writeln(c[i,j]) else write(c[i,j], );//输出杨辉三角形 end. ;问题2、数字三角形(NT) 【问题描述】 给定一个具有N层的数学三角形如下图,从顶至底有多条路径,每一步可沿左斜线向下或沿右斜线向下,路径所经过的数字之和为路径得分,请求出最小路径得分。 2 6 2 1 8 4 1 5 6 8 【输入数据】 第1行,一个正整数n,表示三角形的行数 第2至n+1行,照描述输入三角形 【输出数据】 最小路径得分,行末有换行 【样例输入】 4 2 6 2 1 8 4 1 5 6 8;【样例输出】 10 【注意】 测试数据规模: 保证100%的数据n=1000。 问题分析: 求最小路径得分,比较容易想到的是: 1.如果知道从第1行走到第n行各数字上的最小得分,那么,从中取最小值即可; 2.第n行是从n-1行走下来的,如果知道第n-1层各数字位置上的最小得分值,那么根据规则每步只能沿左斜线向下或沿右斜线向下,要使第n层的各数字位上得到最小得分值,只能从左上和右上两个得分值中取小的一个与当前位的数字相加; 3.同理,第n-1层各数位上的最小得分可以从第n-2层推出; 4.考虑第I层与第I-1层的关系,可以推出如下关系: 设D[I,J]表示第I层,第J列位置上的最小路径得分,A[I,J];表示第I层,第J列位置上的数字,则: D[I,J]=MIN(D[I-1,J],D[I-1,J-1])+A[I,J] 5.从上至下求得D[I,J],那么问题的解为D[n,J](1≤J≤n)中最小数。 进一步分析: 在上述分析中,思考问题的角度按照题意给出从第1层到第n层,如果换个角度从第n层到第1

文档评论(0)

it + 关注
官方认证
文档贡献者

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

认证主体阳春市夕秋图文设计有限公司
IP属地广东
统一社会信用代码/组织机构代码
91441781MA55YY8A1L

1亿VIP精品文档

相关文档