- 在线时间
- 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个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1 o! u9 Z. X0 j" }+ v
解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)
, c8 z) z, T' j: D" h& y0 ^
9 I+ i# ]; e, L" h其中 f(1) = f(2) = 1 (对)4 X. V5 ?% ~9 h6 W0 ~8 ^7 [( `; U
* F* t& L; m6 o8 [! u" J
5 z! e# q" L- `5 m" B
# L: A" f1 |2 h& w# S" j! `从第3个月起,每个月兔子的总数f(n) 可以分为:
, O( Z: [, P6 }. A* T5 F' L6 g5 b; q
# r; e' d1 r/ g7 \$ ?0 l, L第n新出生的兔子 f(newN)+ {: _+ G* e$ P r: y$ d" T4 t
第n月之前出生的兔子 f(beforeN)
7 ?# V. y5 i% j' {5 b即 f(n) = f(newN) + f(beforeN)
- E6 O- z) l, N0 D, f9 v( k5 x% n! _# R. I7 N, A; n1 L' e) @
= f(newN) + f(n-1)+ k# j9 v$ ~! R$ j+ K
( G1 m1 m, x. D; ~7 U: W
1 v+ P' C3 J/ x+ i% Y! F
1 W; j: o# R9 b( c7 f; \4 N8 o在第n+1个月里,第n个月新出生的兔子f(newN)还不能繁殖,数量不变;8 q0 a, m3 O. N! f! U) n
& i% @) e# U0 D6 q7 v而第n个月之前出生的兔子f(beforeN),则可以成倍繁殖,数量X2
# u, @9 ?* [. `' L( b; R& |6 t1 i9 S! f% ?; U3 U( C( f* }
则 f(n+1) = f(newN) + 2(beforeN)X2" E O5 Y% U0 E
+ C5 `) i0 \% ]( o" a3 h' O
化简得 f(n+1) = f(n) + f(n-1)
) ?9 [/ p4 a- T, ^6 b2 ]! v6 D: X4 }/ O6 Z
即 f(n) = f(n-1) + f(n-2) (n=3,4,5,…) W' }% L: X3 Y3 u o
F. b* c; J* r# B/ U: y! o8 S! C$ m, V; T
, C/ R* t$ L; S5 G( _所以,每个月的兔子总对数可以归纳为一个分段函数:
0 [# |& h$ n9 ~; W4 t
8 U; G& [$ y6 r9 T0 Z- g3 H' af(n) = 1 (n=1,2)
, n' t! }& x, M ?; f3 @* o w% o
! R3 l7 k) \: o: j' y% [4 O" c2 wf(n) = f(n-1) + f(n-2) (n=3,4,5)
% j1 Q% P9 d' y% w9 [5 M& Y1 m! D) a P9 Q1 @- y
接着编程为递归函数即可解决问题。
2 C$ f4 _2 _5 m" [+ V4 {" g o. g+ K
}" U1 T3 G! L& Q+ n; V7 _7 j7 b5 I: K, j4 b
. U% ?9 C' X; f# v4 |4 Q. N S& w
|
zan
|