题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....
关于斐波那契数列的兔子繁殖问题可以如下理解:
实际月份 1 2 3 4 5 6 7 8
幼仔对数 1 0 1 1 2 3 5 8
成兔对数 0 1 1 2 3 5 8 13
总体对数 1 1 2 3 5 8 13 21
幼仔对数=前月成兔对数
成兔对数=前月成兔对数+前月幼仔对数
总体对数=本月成兔对数+本月幼仔对数
可以看出幼仔对数、成兔对数、总体对数都构成了一个数列。这个数列有关十分明显的特点,那是:前面相邻两项之和,构成了后一项。
程序源代码:f1 = 1
f2 = 1
for i in range(1,21):
# %12d 将一个整数在宽度为12个字符的栏中右对齐
print '%12d %12d' % (f1,f2)
f1 = f1+ f2
f2 = f1+f2
输出结果为:1 1
2 3
5 8
13 21
34 55
89 144
233 377
610 987
1597 2584
4181 6765
10946 17711
28657 46368
75025 121393
196418 317811
514229 832040
1346269 2178309
3524578 5702887
9227465 14930352
24157817 39088169
63245986 102334155