电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基本算法2-递推法实例

86页
  • 卖家[上传人]:小**
  • 文档编号:88214739
  • 上传时间:2019-04-21
  • 文档格式:PPT
  • 文档大小:681KB
  • / 86 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、递推法,所谓递推,是指从已知的初始条件出发,依据某种递推关系,逐次推出所要求的各中间结果及最后结果。其中初始条件或是问题本身已经给定,或是通过对问题的分析与化简后确定。 可用递推算法求解的题目一般有以下二个特点: 1、问题可以划分成多个状态; 2、除初始状态外,其它各个状态都可以用固定的递推关系式来表示。 在我们实际解题中,题目不会直接给出递推关系式,而是需要通过分析各种状态,找出递推关系式。,采用具体化、特殊化的方法寻找规律,平面上n条直线,任两条不平行,任三条不共点,问这n条直线把这平面划分为多少个部分?,设这n条直线把这平面划分成Fn个部分。 先用具体化特殊化的方法寻找规律,如图所示,易知的前几项分别为,这些数字之间的规律性不很明显, 较难用不完全归纳法猜出Fn的一般表达式。但我们可以分析前后项之间的递推关系,因为这些图形中,后一个都是由前一个添加一条直线而得到的,添加一条直线便增加若干个区域。,一般地,设原来的符合题意的n-1条直线把这平面分成 个区域,再增加一条直线l,就变成n条直线,按题设条件,这l必须与原有的n-1条直线各有一个交点, 且这n-1个交点及原有的交点互不重合

      2、。这n-1个交点把l划分成n个区间,每个区间把所在的原来区域一分为二,所以就相应比原来另增了n个区域,即: 这样,我们就找到了一个从Fn-1到Fn的的递推式,再加上已知的初始值F1=2,就可以通过n-1步可重复的简单运算推导出Fn的值。,var a,i,n:longint; begin read(n); a:=2; for i:=2 to n do a:=a+i; writeln(a); end.,在平面内画五条直线和一个圆,最多能把平面分成多少部分?,平面上有8个圆,最多能把平面分成几部分?,1,2,3,4,5,6,Fn=Fn-1+2 (n-1),圆周上两个点将圆周分为两半,在这两点上写上数1;然后将两段半圆弧对分,在两个分点上写上相邻两点上的数之和;再把4段圆弧等分,在分点上写上相邻两点上的数之和,如此继续下去,问第6步后,圆周上所有点上的数之和是多少?,分析:先可以采用作图尝试寻找规律。,第一步:圆周上有两个点,两个数的和是1+1=2; 第二步:圆周上有四个点,四个数的和是1+1+2+2=6;增加数之和恰好是第一步圆周上所有数之和的2倍。 第三步:圆周上有八个点,八个数的和是1+

      3、1+2+2+3+3+3+3=18,增加数之和恰好是第二步数圆周上所有数之和的2倍。 第四步:圆周上有十六个点,十六个数的和1+1+2+2+3+3+3+3+4+4+4+4+5+5+5+5=54, 增加数之和恰好是第三步数圆周上所有数之和的2倍。 这样我们可以知道,圆周上所有数之和是前一步圆周上所有数之和的3倍。 设An为第n步后得出的圆周上所有数之和,则An=3An1,在 nn的正方形钉子板上(n是钉子板每边上的钉子数),求连接任意两个钉子所得到的不同长度的线段种数.,Fn=Fn-1+n,如图1,是棱长为a的小正方体,图2,图3由这样的小正方体摆放而成。按照这样的方法继续摆放,自上而下分别叫第一层、第二层、第n层,第n层的小正方体的个数记为sn。请写出求sn的递推公式。,1 3 6 10,如图,有边长为1的等边三角形卡片若干张,使用这些三角形卡片拼出边长分别是2,3,4,的等边三角形(如图所示)根据图形推断,写出求每个等边三角形所用卡片总数sn的递推公式,4 9 16 25 36,为庆祝“五一”国际劳动节,市政府决定在人民广场上增设一排灯花,其设计由以下图形逐步演变而成,其中圆圈代表灯花

      4、中的灯泡,n代表第n次演变过程,s代表第n次演变后的灯泡的个数。仔细观察下列演变过程,当n=6时,s=_。,94,Sn=2sn-1+2,Sn=3sn-1-2sn-2,某公共汽车线路上共有15个车站(包括起点站和终点站)。在每个站上车的人中,恰好在以后各站下去一个。要使行驶过程中每位乘客都有座位,车上至少要备有多少个座位?,从表中可以看出车上人数最多是56人,所以车上至少要准备56个座位。,练习1,将一张长方形的纸对折,可得到一条折痕,继续对折,对折时每次折痕与上次的折痕保持平行,连续对折三次后,可得到条折痕,那么对折n次,可得到几条折痕?,Fn=2*Fn-1+1,var a,i,n:longint; begin read(n); a:=1; for i:=2 to n do a:=2*a+1; writeln(a); end.,var f,s,i,n,j:longint; begin read(n); f:=1; for i:=2 to n do begin s:=1; for j:=1 to i-1 do s:=s*2; f:=f+s; end; writeln(f); end.,F

      5、n=Fn-1+2n-1,var加入高精度运算 a,b:array1100 of integer; i,j,n:integer; begin readln(n); a100:=1 ;n=1时 b100:=1;20=1 for i:= 2 to n do begin for j:= 100 downto 1 do bj:=bj*2;递推出2i-1 for j:= 100 downto 2 do if bj=10 then begin bj-1:=bj-1+bj div 10 ; bj:=bj mod 10; end; for j:= 100 downto 1 do begin aj:=aj+bj; if aj=10 then begin aj-1:=aj-1+aj div 10 ; aj:=aj mod 10; end; end; end; j:=1; while aj=0 do j:=j+1; for i:= j to 100 do write(ai) ; end.,练习2,如图,第一次把三角形剪去一个角后,图中最多有四个角,第二次再把新产生的角各剪一刀,如此下去,每一次都是把新产生的角

      6、各剪一刀,则第n次剪好后,图中最多有多少个角?,4 6 10 18 34,Fn=Fn-1+2n-1,var f,s,i,n,j:longint; begin read(n); f:=4; for i:=2 to n do begin s:=1; for j:=1 to i-1 do s:=s*2; f:=f+s; end; writeln(f); end.,var a,b:array1100 of longint; i,j,n:longint; begin readln(n); a100:=4 ; b100:=1; for i:= 2 to n do begin for j:= 100 downto 1 do bj:=bj*2; for j:= 100 downto 2 do if bj=10 then begin bj-1:=bj-1+bj div 10 ; bj:=bj mod 10; end; for j:= 100 downto 1 do begin aj:=aj+bj; if aj=10 then begin aj-1:=aj-1+aj div 10 ; aj:=aj mod

      7、 10; end; end; end; j:=1; while aj=0 do j:=j+1; for i:= j to 100 do write(ai) ; end.,练习3,下图中把大正方形各边平均分成了5份,此时有55个正方形。如果把正方形各边平均分成n份,那么得到的正方形总数为多少?,52+42+32+22+12=55,n2+(n-1)2+(n-2)2+22+1,Fn=Fn-1+n2,var a,i,n:longint; begin read(n); a:=1; for i:=2 to n do a:=a+i*i; writeln(a); end.,Var 加入高精度运算 a:array125 of longint; i,j,k,x,n:longint; begin readln(n); a25:=1;n=1时 for i:= 2 to n do begin x:=i*i; for j:= 25 downto 1 do begin aj:=aj+x mod 10; if aj=10 then begin aj:=aj-10 ; aj-1:=aj-1+1; end; x:=x d

      8、iv 10; end; end; j:=1; while aj=0 do j:=j+1; for i:= j to 25 do write(ai); end.,练习4,如图,由等圆组成的一组图中,第1个图由1个圆组成,第2个图由7个圆组成,第3个图由19个圆组成,按照这样的规律排列下去,则第9个图形由_个圆组成。,217,可得递推公式: Fn= Fn-1+6*(n1),var a,i,n:longint; begin read(n); a:=1; for i:=2 to n do a:=a+6*(i-1); writeln(a); end.,var 加入高精度运算 a:array150 of longint; i,j,k,x,n:longint; begin readln(n); a50:=1; for i:= 2 to n do begin x:=(i-1)*6; for j:= 50 downto 1 do begin x:=x+aj; aj:=x mod 10 ; x:=x div 10; end; end; j:=1; while aj=0 do j:=j+1; for i:=

      9、 j to 50 do write(ai); end.,练习5,已知三角形ABC的面积为10,延长边BC到点D,使BC=CD,延长边CA到点E,使CA=AE,延长边AB到点F,使AB=BF,连结DE,EF,FD,得到三角形DEF,并记图中阴影部分面积为S1,此时我们称三角形ABC向外扩展了一次.求经过N次扩展后图中阴影部分的面积Sn.,Fn=7*Fn-1 ( Fn为第n次扩展后整个三角形的面积 ) F0=10 Sn=Fn-Fn-1,const max=100; var f1,f2,s:array1max of longint; i,j,k,l,n:longint; begin readln(n); f1max:=0 ; f1max-1:=1; F0=10 for i:= 1 to n do begin f2:=f1; k:=0; 7 for j:= max downto 1 do begin k:=k+f1j*7; f1j:=k mod 10; k:=k div 10; end; end;,for i:= max downto 1 do 相减 begin if f1if2i then begin f1i:=f1i+10; f1i-1:=f1i-1-1; end; si:=f1i-f2i; end; j:=1; while sj=0 do j:=j+1; for i:= j to max do write(si) ; end.,Hanoi双塔问题,给定A、B、C三根足够长的细柱,在A柱上放有2n个中 间有孔的圆盘,共有n个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的(下图为n=3的情形)。现要将

      《基本算法2-递推法实例》由会员小**分享,可在线阅读,更多相关《基本算法2-递推法实例》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.