- 在线时间
- 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个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? H3 I' r# y' f$ p! X
解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)$ ^1 t4 s7 o, o, a4 J" d& ^
$ {% V3 s8 _! G) A* R: m. o
其中 f(1) = f(2) = 1 (对)6 r$ K* u: Z$ _% [0 t8 A
- x* W& k8 f: z
- s4 {. K9 _3 ~% E4 y$ ^5 k
0 \7 i0 W/ V4 N% i. A2 \% F3 F8 ]! j从第3个月起,每个月兔子的总数f(n) 可以分为:4 Z7 n, \, G0 p. Y' z; N6 Y3 f/ e
. e% ?0 p7 P" W; v
第n新出生的兔子 f(newN)
H4 U4 b/ H+ K" C第n月之前出生的兔子 f(beforeN)
4 ` }' u# @# m: B即 f(n) = f(newN) + f(beforeN)+ k. w& N" K2 j8 o( R
1 P+ N, e1 S' H
= f(newN) + f(n-1)
& C, l. ]7 \4 r: s9 R: n. x P5 \
: a( {$ a* N+ z% j: p f4 a
. y* G7 _( c* M8 p: c6 m
. X) M; S8 M5 J$ D在第n+1个月里,第n个月新出生的兔子f(newN)还不能繁殖,数量不变;; w2 Y% R( U8 s: a8 q( p4 s0 Y
& b& ]7 n: m. i5 c- E而第n个月之前出生的兔子f(beforeN),则可以成倍繁殖,数量X2, S' v( u. p7 q+ ]
5 U; p( p2 B8 C: n则 f(n+1) = f(newN) + 2(beforeN)X2
6 S! M3 b8 T9 V" t& A# r
4 H$ U9 m' l2 u+ H1 l化简得 f(n+1) = f(n) + f(n-1)
- B1 G0 ~2 z8 r7 @! v( `9 q; g" |9 E) W& k& x0 t
即 f(n) = f(n-1) + f(n-2) (n=3,4,5,…)
# n* Q# o6 b; \4 T1 d
2 i' I5 s, ~: `2 b9 D
% k: i% |3 `8 {. P, n7 ?$ }
, }$ [( `% s8 d$ A2 G% P' R* o所以,每个月的兔子总对数可以归纳为一个分段函数:- ~- a L9 ^2 p! M* X* g* p$ k
: n! m6 g; p O9 N6 j' C; uf(n) = 1 (n=1,2)+ U9 d/ D" X7 L4 |! S9 a- E; c
! d0 V7 Y0 f A. P5 Zf(n) = f(n-1) + f(n-2) (n=3,4,5) [1 Q% M% ?: J/ U) j& P
: H1 J4 n- d9 h* K+ p! S) Q; `$ q
接着编程为递归函数即可解决问题。
% J* b1 @+ T t$ n. x
( R1 m9 j1 Y" s- }9 e, b: J8 s8 M/ T; {+ A& ?" H
! U5 L. x' L6 t% j- o) R* w% y
: ~' Y% v0 y6 R. f$ @ |
zan
|