全文预览

递推算法

上传者:qnrdwb |  格式:ppt  |  页数:27 |  大小:0KB

文档介绍
:从已知条件出发,逐步推出要解决的问题。? 2、逆推法:从问题出发,逐步推到已知条件。?算法流程如下:Description:有一对小兔,过一个月之后长成大兔,到第四个月就可以生下一对小兔,并且以后每个月都生下一对小兔。而所生的一对小兔也同样到一个月之后长成大兔,到第四个月就可以生下一对小兔,并且以后也每个月都生下一对小兔.假设所有的兔子均不死亡,问第n个月后共有多少对兔子?请设计一个程序,解决这一问题。Input:一个整数n(n <= 50)Output:第n个月后共有多少对兔子Sample Input:5Sample Output:3顺推举例2——兔子繁殖问题1559知识迁移:昆虫繁殖知识迁移:昆虫繁殖Description:科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强。每对成虫过x个月产y对卵,每对卵要过两个月长成成虫。假设每个成虫不死,第一个月只有一对成虫,且卵长成成虫后的第一个月不产卵(过X个月产卵),问过Z个月以后,共有成虫多少对?0=<X<=20,1<=Y<=20,X=<Z<=50< font>Input:x,y,z的数值Output:过Z个月以后,共有成虫对数Sample Input:1 2 8Sample Output:37分析?首先我们来看样例:每隔1个月产2对卵,求过8月(即第8+1=9月)的成虫个数月份新增卵b[i]成虫a[i]1012213214235656107714138262394637………分析?设数组A[i]表示第i月新增的成虫个数。?由于新成虫每过x个月产y对卵,则可对每个A[i]作如下操作:?A[i+k*x+2]:=A[i+k*x+2]+A[i]*y (1<=k,i+k*x+2<=z+1)?因为A [i]的求得只与A[1]~A[i-1]有关,即可用递推求法。?则总共的成虫个数为:????11][ziiAans

收藏

分享

举报
下载此文档