经典兔子繁殖问题的简单数学建模过程

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

解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)

其中 f(1) = f(2) = 1 (对)

 

从第3个月起,每个月兔子的总数f(n) 可以分为:

  1. 第n新出生的兔子 f(newN)
  2. 第n月之前出生的兔子 f(beforeN)

即 f(n) = f(newN) + f(beforeN)

= f(newN) + f(n-1)

 

在第n+1个月里,第n个月新出生的兔子f(newN)还不能繁殖,数量不变;

而第n个月之前出生的兔子f(beforeN),则可以成倍繁殖,数量X2

则 f(n+1) = f(newN) + 2(beforeN)X2

化简得  f(n+1) = f(n) + f(n-1)

即 f(n) = f(n-1) + f(n-2)  (n=3,4,5,…)

 

所以,每个月的兔子总对数可以归纳为一个分段函数:

f(n) = 1 (n=1,2)

f(n) = f(n-1) + f(n-2) (n=3,4,5)

接着编程为递归函数即可解决问题。

 

练习感想:编程其实是最后的一环,数学和逻辑建模才是程序的灵魂。

你可能感兴趣的:(学习体会)