注册 登录
编程论坛 程序供求

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

半夏无尘 发布于 2017-03-06 10:06, 6875 次点击
新人求指教
2 回复
#2
寒风中的细雨2017-03-14 23:29
如果包括第三个月就是  斐波那契  否则就不是

可以这么想 当前这个月的 兔子数量(这里就用对为单位)  为 An, 那么 An 等于什么呢?

很显然这里有个前提是   兔子 长生不死的   所以  剩余的兔子数量 肯定包括 上个月的 兔子总数  设为 A(n - 1),  还有 在 这个月中 需要出生的新生兔子 表示为Sn

即:An = A(n-1) + Sn
---------------------------------

下面求Sn  与 Ax 的关系,  因为第三个月新生的兔子就可以生兔子了  所以实际空闲间隔就只有2个月, 所以两个月前的所有兔子 都会在经过2个月后的第三个月 生一对新的
即: Sn = A(n - 2)
----------------------------------

综上  An = A(n - 1) + A(n - 2)  
======================================================

补充一点  这里可以改写为更为一般的等式   假设成熟期为 j,那么第n个月的总数为 An = A(n - 1) + A(n - j)
#3
beichei5d2017-03-20 20:09
这是个数学问题,,难点在数学,不在编程。。
1