动态规划法-经典兔子问题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
F(x) =
x=1 x=2 x>2
1
F(x-1)+F(x-2)
注:所求月份的兔子总对数是前两个月兔子总对数之和
算法流程:
输入:所求月份数x 输出:所求月份中兔子总对数F(x) 1.首先判断x是否为1或者2 1.1若是,则直接返回1 1.2否则,执行循环F(x)=F(x-1)+F(x-2) 2.得出结果,输出F(x)
算法实现,用C语言描述如下:
效果展示如下:
13计科1班
组长:肖利 组员:李斯、李梦蝶、杨冰
自选题:
动态规划法——经典兔子问题
问题描述:
有一对兔子,从出生后第三个月起都生一对兔 子,小兔子长到第三个月后每个月又生一对兔子。 假如兔子都不死,问每个月的兔子对数是多少?
1,分析:
首先要明确题目的意思,是求每个月的兔子总 对数。将兔子分为三种:兔子出生后第一个月为小 兔子,第二个月为中兔子,第三个月和之后为老兔 子。那么,第一个月的兔子对数为:1、0、0,第 二个月兔子对数为:0、1、0,第三个月兔子对数 为:1、0、1,第四个月兔子对数为:1、1、1,第 五个月兔子对数为:2、1、2,第六个月兔子对数 为:3、2、3,第七个月兔子对数为:5、3、5,由 上可知,每个月兔子的总对数分别是:1、1、2、3、 5、8、13、.......
月份
1 2
总对数
小
中 小 中 小 中 小 老 老 小 中 小 老 小 老 小 中 老 老 老 小 老 1 1 2
3 4 5 6
7 8 小
3
5
8
老 源自文库3
老 中 小
老 中
小 老 中 小
......
表示未成熟兔子 表示成熟兔子
仔细观察图解,兔子所求每月总对数用F(x) 表示,x表示月份数,可得出一下结论: