- 在线时间
- 90 小时
- 最后登录
- 2018-12-27
- 注册时间
- 2016-4-22
- 听众数
- 17
- 收听数
- 0
- 能力
- 20 分
- 体力
- 23475 点
- 威望
- 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个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
% r! v0 }/ L3 m- e8 B, R6 j解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)
) e& `$ e$ U7 U& q/ |1 O% @# g- {1 R, e! c1 x8 I7 t
其中 f(1) = f(2) = 1 (对)
% k1 d: X2 I( ^" C4 u: f# e' R" d5 h" z
0 _; T& r/ F: h N* ^( c2 ~/ t4 h( H" v5 N d' u
从第3个月起,每个月兔子的总数f(n) 可以分为:
# }+ @$ |0 v- f. {/ W7 f5 e' m, H& l! k2 B
第n新出生的兔子 f(newN)' Y8 x$ U! o4 Z T
第n月之前出生的兔子 f(beforeN)
$ I3 D: w2 {, u即 f(n) = f(newN) + f(beforeN)
4 R8 U6 M$ s; @4 C) h* }% a+ j2 K+ d/ l) k0 n
= f(newN) + f(n-1)4 p0 p. A: T2 I- s0 l( g. D
3 g% q3 S6 _3 _5 m5 A
9 R+ L" w; o4 U8 y( o9 x
. i) {+ R# D4 `# `0 P( }0 J在第n+1个月里,第n个月新出生的兔子f(newN)还不能繁殖,数量不变;
! i) W* o$ a/ s: l1 `) r$ G' h+ d8 Q
而第n个月之前出生的兔子f(beforeN),则可以成倍繁殖,数量X2
( ]+ t9 ~" O5 ?6 d3 `- r s5 i7 Q8 E+ j2 Q% _
则 f(n+1) = f(newN) + 2(beforeN)X2$ b/ b: T) U% f' j0 e \0 W& T$ N
, N/ J! Y {9 {! C* ~- ?, k
化简得 f(n+1) = f(n) + f(n-1)
* R b0 p, u3 @5 I4 T1 \8 U1 c$ ^; s- C. g( h" |: `5 X
即 f(n) = f(n-1) + f(n-2) (n=3,4,5,…)
" Q4 {3 n. P& q9 |% T
7 c+ S, @: [4 U: G3 e5 `4 L) l1 i. \! t, {. n
5 d( i. T$ m- J* Y/ `所以,每个月的兔子总对数可以归纳为一个分段函数:
3 b# P0 @% y$ f* ]' y
& T6 A8 p$ `2 p5 }, j$ [( e3 k; ]f(n) = 1 (n=1,2)* n) d& F+ B- k2 U( h
2 K2 l8 l! t8 N' hf(n) = f(n-1) + f(n-2) (n=3,4,5), q9 y9 H1 E! }% m4 ?) r
W& f7 n) z. G# Z" `! ~
接着编程为递归函数即可解决问题。
2 Z$ L# v6 K; m& K
% f1 `: L3 `2 U3 K: P+ T
/ X# e8 \- Q* r+ v& Z9 i4 e
8 M6 h' `4 z* |* E4 J
. w4 X5 d; z. q8 T |
zan
|