17. 用计算机解决“兔子繁殖问题”。
题目描述:一对兔子饲养到第二个月进入成年,从第三个月开始每个月生一对小兔子,所生小兔子也是出生后第二个月成年,从第三个月开始每月生一对小兔子。假设兔子不会死亡,问这样下去一年后有多少对兔子?
题目分析:设第n个月兔子的数量用Sn表示。第一、二个月兔子没有繁殖能力,所以还是一对,即S1=1,S2=1;第三个月,生下一对小兔子,兔子数量达到2对,即S3=2;第四个月大兔子继续生下一对小兔子,第三个月出生的小兔子进入成年期但还没生育,兔子数量再加1对,即S4=3;第五个月老兔子继续生育,前个月(第三月)出生的小兔子也开始生育,上个月(第四月)出生的小兔子成年,兔子数量加2对,即S5=5;……依次类推可以列出下表:
|
经过月数 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
…… |
|
兔子对数 |
1 |
1 |
2 |
3 |
5 |
8 |
13 |
21 |
34 |
…… |
可以发现如下规律:除第1、2个月兔子数量为1对外,第n个月的兔子数量等于前两个月的兔子数量之和,即Sn=Sn-2+Sn-1。如果将每月兔子数量看做数列的各项,就构成了数学史上一个有名的数列,即“斐波拉契数列”:1、1、2、3、5、8、13、21、34、55……这个数列有许多奇特的性质,例如,从第3个数起,每个数与它后面那个 数的比值,都很接近于0.618,正好与大名鼎鼎的“黄金分割”相吻合。
(1)为解决此题,我们采用了 ▲ 算法。(填:枚举、解析、排序、查找)(1分)
(2)Visual Basic程序界面设计如第17题图所示(图一为对象初始属性,图二为修改对象属性后界面)。
|
|
|
|
第17题图一 |
第17题图二 |
根据上图,下表A、B分别代表的属性名分别是 ▲ 、 ▲ 。(2分)
|
对象名称 |
对象属性 |
属性值 |
|
Form1 |
A |
兔子繁殖问题 |
|
Text1 |
B |
(空白) |
(3)假设程序编写已经正确完成,运行后出现如第17题图二窗口。当在上边文本框输入12,则点击“开始计算”按钮后,下边文本框中显示的内容是: ▲ 。(1分)