- 在线时间
- 90 小时
- 最后登录
- 2018-12-27
- 注册时间
- 2016-4-22
- 听众数
- 17
- 收听数
- 0
- 能力
- 20 分
- 体力
- 23473 点
- 威望
- 2 点
- 阅读权限
- 200
- 积分
- 7546
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 126
- 主题
- 100
- 精华
- 2
- 分享
- 0
- 好友
- 6
升级   50.92% TA的每日心情 | 开心 2018-6-4 15:01 |
|---|
签到天数: 7 天 [LV.3]偶尔看看II
 群组: 2018年大象老师国赛优 群组: 高考备战 群组: 2018中小学数学建模冬 |
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
% C3 B" v- T6 [! d) r! X1 o' c7 C解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)
8 `6 l. R1 H) [3 H) V& ^6 A. E+ b M& Y# E+ e
其中 f(1) = f(2) = 1 (对)0 P' u9 L2 g" J3 Z7 d
z, h, v: y' @# b4 w2 i& M4 e
7 `# X8 a% k) |3 I; }8 a B# v
2 e e4 O9 T- n4 k8 B, k8 E: M从第3个月起,每个月兔子的总数f(n) 可以分为:) u7 j) g( I9 t0 p2 h3 a+ Z
6 b: o' U) v- i3 h; p O3 ?7 ^第n新出生的兔子 f(newN)
# w7 E+ A$ n K第n月之前出生的兔子 f(beforeN)
# i, B, f) ?) _# A7 c即 f(n) = f(newN) + f(beforeN)
: J- a# z/ q x3 ~( S
7 H( I4 r7 F4 M= f(newN) + f(n-1)$ ]9 t' y C! ^
$ R' Y* N9 S4 d/ m% r1 E. \! B+ j+ B5 @1 Z6 m9 x1 v. Q
; S P/ W9 a4 ^/ ]* o! U: O1 p# u3 u$ K
在第n+1个月里,第n个月新出生的兔子f(newN)还不能繁殖,数量不变;
* F- j/ d" T+ W
S% n; V) h% n2 ]而第n个月之前出生的兔子f(beforeN),则可以成倍繁殖,数量X2- E! U3 N' D8 V, _0 [
( R- w9 V* @5 P# L0 {
则 f(n+1) = f(newN) + 2(beforeN)X2
1 U9 q3 \0 L9 M& m
9 ^$ ] {. z: Y' T4 X: { B$ ]0 I化简得 f(n+1) = f(n) + f(n-1)8 l' s$ z+ Z6 q1 T
7 l- M; [6 Z4 j( o- y* C. a+ v
即 f(n) = f(n-1) + f(n-2) (n=3,4,5,…)
' D4 D) C+ B& k% n- a6 Z9 |, W. n% Q) U+ u6 g3 i" F& V
; `. I' T; P+ J' O5 G6 ~) I# {- ~ A" y
所以,每个月的兔子总对数可以归纳为一个分段函数:
5 W7 _9 A9 p, @# ?5 R7 [6 l4 v+ V4 d
f(n) = 1 (n=1,2)+ v* }+ W5 v/ `# ^/ N3 t
% f4 g( @, r. ~, U
f(n) = f(n-1) + f(n-2) (n=3,4,5)
) q5 S! Q% Z0 |' M+ s$ |" t: c; }& v7 a+ v. u1 C0 g; {; B! J
接着编程为递归函数即可解决问题。
3 s- O1 A- L: n! g$ L+ U* n$ N1 l N6 w; s/ z7 ?4 D
9 F& H7 d) B0 S7 @! p
4 y: O" S2 A4 u6 X9 j7 |
) B _2 D7 C" X2 O& \3 f7 d |
zan
|