- 在线时间
- 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个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?+ m0 p& Q7 K) g# Q) A
解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)
" `7 v" S# I$ R1 o4 i% e" k- T& w/ V. g5 d5 q& Z2 b! s; Y* x6 N2 `8 P+ R
其中 f(1) = f(2) = 1 (对)& c+ u- `# ?& \0 z6 q( l1 g
2 B* {( z3 G9 u; {% K3 ^ w
- S$ D* F# C! n# A; w# d; V1 s7 Y+ k/ H- J" `
从第3个月起,每个月兔子的总数f(n) 可以分为:
9 W: r8 @) A6 f* |0 ?& T$ s, I
$ i [1 Y4 q" u/ j% C7 a第n新出生的兔子 f(newN)5 K# ]' i4 M, P
第n月之前出生的兔子 f(beforeN)
. ?8 t, n, E/ E3 Y5 ]" V" Y即 f(n) = f(newN) + f(beforeN)$ |- C5 b, v; `' q3 f* R+ q
8 A, e& G) A' r! S. u+ t, u
= f(newN) + f(n-1)1 @ ^: | ^6 f0 s
& }; N& ]7 {1 G
3 R9 D5 o- i6 X. _! u2 g. q/ `
/ J: }: ]8 M+ W. H( {' u在第n+1个月里,第n个月新出生的兔子f(newN)还不能繁殖,数量不变;
" r" ^% ]- e( U% N% N
0 P7 ~6 I; g+ j而第n个月之前出生的兔子f(beforeN),则可以成倍繁殖,数量X24 }1 K; B2 O6 q/ H1 R9 J: J, h
4 W5 X5 s# A3 T* ~" K2 U2 ?
则 f(n+1) = f(newN) + 2(beforeN)X2
0 g: o5 N; r/ \8 V$ i+ b8 Y: O3 ~5 N6 o" L: s
化简得 f(n+1) = f(n) + f(n-1)5 \- l ^/ }. u" p% v
d! V7 a2 N4 Q; t9 t& [2 N
即 f(n) = f(n-1) + f(n-2) (n=3,4,5,…)8 ?6 X" ?. t- ?$ y( M. q
9 C% U. b8 _) f* \& \+ ~1 W* v
* K' ]7 Y' o9 U' Q8 P+ O
3 u8 \6 }1 f: B( c所以,每个月的兔子总对数可以归纳为一个分段函数:3 H/ ~0 f& m& q$ v# I
3 w4 K$ ~6 K$ z7 x+ t4 N! a
f(n) = 1 (n=1,2)# B: H$ q+ J" _& W% N
6 S) m }6 r) T. W/ p4 N
f(n) = f(n-1) + f(n-2) (n=3,4,5)
3 F0 x! ]8 `8 y& @6 u. u6 j& O6 s0 n% K1 M! O7 q" n! }
接着编程为递归函数即可解决问题。
# H( D7 R! q# {; ]; s0 W4 {: ` \4 w( R5 L0 M3 a
# y9 w1 j! \# n1 k+ d
2 h' S# ^1 e; K. G* Q6 M; Y/ w1 d9 d/ ?8 [7 o* p) ~
|
zan
|