C++中级第7讲 递推.pptxVIP

  • 10
  • 0
  • 约 29页
  • 2024-05-30 发布于广西
  • 举报
C++中级第7讲递推.pptxC++中级第7讲递推.pptx

学科竞赛编程教研研究院C++NOIPNOIIOI

1PARTONE递推算法:是指从已知的初始条件出发,依据某种递推关系,逐次推出所要求的各中间结果及最后结果。递推的概念123特点:1、问题可以划分成多个状态;2、除初始状态外,其它各个状态都可以用固定的递推关系式来表示。首要问题:得到相邻的数据项间的关系(即递推关系)。一般来说,可以将递推算法看成是一种特殊的迭代算法。

1PARTONE给定一个数的序列H0,H1,…,Hn,…若存在整数n0,使当nn0时,可以用符号(或大于号、小于号)将Hn与其前面的某些项Hi(0in)联系起来,这样的式子就叫做递推关系式递推关系式:Hn=Hn-1+Hn-2递推的概念——递推关系式

1PARTONEFibonacci数列的代表问题是由意大利著名数学家Fibonacci于1202年提出的“兔子繁殖问题”引出的递推的概念——斐波那契(Fibonacci)数列一对兔子,从出生满2月起,每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,第n个月有几只兔子?问题分析:前提——不考虑兔子死亡用小写字母表示新兔子,用大写字母表示具备生育能力的兔子第1个月:放入一对新兔子r1。第2个月:还是一对兔子,但已具备生育能力r1变成R1。第3个月:R1生新兔子r2,兔子变为R1+r2。第4个月:R1生新兔子r3,r2变R2。兔子为R1,R2,r3。第5个月:R1和R2生新兔子r4和r5,r3变为R3。兔子为R1,R2,R3,r4,r5…兔子数量11235…

1PARTONE?代码如下:#includeiostreamusingnamespacestd;intmain(){inta[1000],n;cinn;a[0]=a[1]=1;for(inti=2;i=n;i++){a[i]=a[i-1]+a[i-2];}couta[n];return0;}递推的概念——斐波那契(Fibonacci)数列Fibonacci数列递推方程:递推算法以初始(起点)值为基础,用相同的运算规律,逐次重复运算,直至运算结束。这种从“起点”重复相同的方法直至到达一定“边界”,犹如单向运动,用循环可以实现。递推的本质是按规律逐次推出(计算)先一步的结果

1PARTONE什么是顺推和逆推顺推法:从已知条件出发,逐步推出要解决的问题的结果。逆推法:从问题结果出发,逐步推到已知条件。

1PARTONE什么是顺推和逆推顺推逆推由题意(或递推关系)定初始值F1(边界条件)求出顺推关系式Fi=G(Fi-1)由题意(或递推关系)确定最终结果Fn;求出倒推关系式Fi-1=G(Fi)i=1(由边界条件F1出发进行顺推)i=n(从最终结果Fn出发进行倒推)while当前结果Fi非最终结果Fn,由Fi=G(Fi-1)顺推后项;while当前结果Fi非初始值F1,由Fi-1=G(Fi)倒推前项;输出顺推结果Fn和顺推过程输出倒推结果F1和倒推过程解决递推问题的一般步骤:1、建立递推关系式;2、确定边界条件(即初始值);3、递推求解

1PARTONE顺推(骨牌问题)算法分析n=1有2*n的长方形方格,用n个1*2的骨牌铺满方格。编一程序,试对给出的任意一个n(n0),输出铺法总数。顺推和逆推的应用——顺推n=2n=3n=4请你看看n=4时有几种排法吧!

1PARTONE推出一般规律:对于一般的n,假设其铺法总数为xn若第一个骨牌是竖排列放置时,剩下n-1个需要排列,其排列方法数刚好为xn-1若第一个骨牌是横排放置时,则整个方格至少有2个骨牌横排,则剩下n-2个需要排列,排列方法为xn-2顺推和逆推的应用——顺推….…..….…..nn-1nn-2

1PARTONE顺推和逆推的应用——顺推初始化边界条件初始条件:或是问题本身已经给定,或是通过对问题的分析和化简后确定代码如下:#includeiostreamusingnamespacestd;intmain(){inta[1000],n;cinn;a[1]=1;//初始化边界条件a[2]=2;//开始递推for(inti=2;i=n;i++){a[i]=a[i-1]+a[i-2];}couta[n]endl;return0;}

1PARTONE顺推和逆推的应用——顺推顺推(昆虫繁殖)——科学家【题目描述】科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强。每对成虫过x个月产y对卵,每对卵要过两个月长成成虫。假设每个成虫不死,第一个月只有一对成虫,且卵长成成虫后的第一个月不产卵(过X个月产卵),问过Z个月以后,共有成虫多少对?0≤x≤20,1≤y≤20,x≤z≤50。【输入】x,

文档评论(0)

1亿VIP精品文档

相关文档