在线时间 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个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
$ m; q6 @3 u0 E 解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)
# X a: \, _3 s" y
5 c' y% T5 o9 b2 s2 R0 } 其中 f(1) = f(2) = 1 (对)) Q2 j% p; K- Y
+ L0 ~$ V2 v8 c2 N: d; r8 L: u
! F, V4 i3 s( b2 ~, b1 W
% Y# L9 k' h8 i 从第3个月起,每个月兔子的总数f(n) 可以分为:
. V- l) q A: Y' z
: u4 Q" a2 Q& [. d5 x, q5 t9 x 第n新出生的兔子 f(newN)
' L% d+ g! l/ U; v+ ~/ y5 `# |0 q 第n月之前出生的兔子 f(beforeN). R& l: O7 A/ O, a `
即 f(n) = f(newN) + f(beforeN)
8 d' v, P0 X# i
( m( }3 X5 K! ~, k. k = f(newN) + f(n-1)
- R+ i9 ?8 O& _5 ~4 o
* w3 A8 c" ]7 {' H+ o6 \ P
2 F7 E$ P/ @+ _2 L6 Q4 M! s& ~" m
9 A8 q- O1 u" g. D9 L 在第n+1个月里,第n个月新出生的兔子f(newN)还不能繁殖,数量不变;
$ I8 r- f9 j# H" @ ( T3 J7 U) \$ u: v
而第n个月之前出生的兔子f(beforeN),则可以成倍繁殖,数量X2, \1 y8 R3 F$ L% z% D
. D# n7 C- J E4 ]- Z9 s- v0 M 则 f(n+1) = f(newN) + 2(beforeN)X2
$ H* C' M& ` ? Y
r; R' P- A; ~+ t' _ 化简得 f(n+1) = f(n) + f(n-1)
: I: h+ H# J) Z
/ Z% c# `+ q$ o5 f9 q0 Z+ H4 J 即 f(n) = f(n-1) + f(n-2) (n=3,4,5,…)4 D( F% ?; f6 K6 @0 c% K
9 o" u n. H* C) x8 M
. @$ }4 ]+ {+ u + M- |. \( s7 w: _! C. t# O
所以,每个月的兔子总对数可以归纳为一个分段函数:6 Z1 S6 \3 x. A1 i7 b
. M0 [$ N L p9 H/ _# K
f(n) = 1 (n=1,2) d5 I6 K2 }# u. L
" N$ N4 e, ^+ l7 v- q f(n) = f(n-1) + f(n-2) (n=3,4,5)3 x; @% K4 O6 s5 B( j
, i% R4 ^* B' H! @- Z! S0 I 接着编程为递归函数即可解决问题。
0 w1 @0 c/ b5 o$ E: C% e
: Q. b, j: A/ r( F* W } + i) N+ B# p( P
0 X5 f- Y: Z" n, r% ^1 O# _% g * x7 i6 ~) M i9 t& l$ E( H
zan