- 在线时间
- 90 小时
- 最后登录
- 2018-12-27
- 注册时间
- 2016-4-22
- 听众数
- 17
- 收听数
- 0
- 能力
- 20 分
- 体力
- 23472 点
- 威望
- 2 点
- 阅读权限
- 200
- 积分
- 7535
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 126
- 主题
- 100
- 精华
- 2
- 分享
- 0
- 好友
- 6
升级   50.7% TA的每日心情 | 开心 2018-6-4 15:01 |
|---|
签到天数: 7 天 [LV.3]偶尔看看II
 群组: 2018年大象老师国赛优 群组: 高考备战 群组: 2018中小学数学建模冬 |
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
: ^% V6 K r4 T9 A& t7 g解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)) _: d9 B8 P. i1 o3 Z" K% J
5 r M, e4 a# b7 e- P& o+ C4 I- I其中 f(1) = f(2) = 1 (对)
: \' x# f6 T. e
# {& W/ e! o$ @ ~. J, D+ {' J( J( S' v+ v
8 V0 ^' S2 ]6 v) T从第3个月起,每个月兔子的总数f(n) 可以分为:5 X3 q0 }3 ]# O' B# Z$ Q! C
: w0 y; @. d) y8 k# [& ]0 [- \第n新出生的兔子 f(newN); }6 @$ E+ L6 i
第n月之前出生的兔子 f(beforeN), Y; T9 l! I( C8 s1 E8 z
即 f(n) = f(newN) + f(beforeN)5 ^" l9 J+ ?; [* Z% o# W" _" ] F* ^
X- W" }% a% |! ~4 F
= f(newN) + f(n-1)
1 r5 E' S; ^0 ~1 B2 g
% C2 h: G1 ]: D' v
( B* h/ r2 L: }4 [
8 T5 c4 ^& J' V. w% s; Z: z4 t在第n+1个月里,第n个月新出生的兔子f(newN)还不能繁殖,数量不变;
& Y1 V) ?4 ?3 p; Y3 _/ N3 K" R9 g9 R
而第n个月之前出生的兔子f(beforeN),则可以成倍繁殖,数量X2
: X; d. I8 _& k9 h( h5 y6 R9 ~3 O1 e, A" c" t6 I5 @! L. J
则 f(n+1) = f(newN) + 2(beforeN)X2# ?: }! q" V8 E* p
) S: q: A6 _1 c化简得 f(n+1) = f(n) + f(n-1)
- z+ A& b" _2 j7 e( a2 n' { G7 `1 \
即 f(n) = f(n-1) + f(n-2) (n=3,4,5,…)& y. }) x: o, y
& v+ w, r9 ]3 C/ @; O
1 L7 O4 W7 @# i4 v4 |! F( w& z: Z$ a5 j- n1 `3 X- B
所以,每个月的兔子总对数可以归纳为一个分段函数:
, f `. N5 w* \' S$ q. o5 F- G- K
1 T& i9 L" R" S9 z5 U- if(n) = 1 (n=1,2)0 [& ^& f) h5 J9 Q& f8 b$ I, }
9 v" `9 n1 o/ T0 l$ a! \
f(n) = f(n-1) + f(n-2) (n=3,4,5)+ G* ~0 v* L5 \. ?- }0 ~
F6 f2 {# {4 g9 x9 u+ o接着编程为递归函数即可解决问题。
3 L; _9 s9 q; ~. }& t- R' f7 l/ S! G5 x J0 L; H' ~+ R
! U6 u) H: }; z' p1 J* X+ `0 _) _0 Q T% W$ D, F7 B( x
' _# n2 ~+ b6 p& V. d [1 ]% z" y0 Q5 O
|
zan
|