有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

题目分析:

  1. 前两个月由于还未生小兔子,所以兔子对数是1
    有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?_第1张图片

2 . 这张图简单绘制了兔子繁衍的过程,后面可以依此类推,我们从图上可以看出问题来。通俗的说第三个月的大兔子在第四个月会(变)为大、小两只兔子,小兔子(变)为大兔子。我们发现这似乎有迹可循,即第三个月大兔子给兔子总数所带来的变化与第二个月大兔子的结果一样,取2,而第三个月小兔子给兔子总数带来的变化与第一个月一样,取1,那么第四个月兔子总数就=2+1。
同理第四个月左侧大、小两只兔子给兔子总数带来的变化与第三个月大、小两只兔子相同,取3,右侧大兔子给兔子总数带来的变化与第二个月大兔子相同,取2,所以第五个月兔子总数=3+2

def Rabbit_reproduction(algebra):
    sum=[1,1]
    if (algebra==1)or(algebra==2):
        return sum
    for i in range(2,algebra):
        number=sum[-1]+sum[-2]
        sum.append(number)
    return sum

你可能感兴趣的:(python)