- 在线时间
- 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个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
) C9 `2 j3 N7 @9 a4 [解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)
* R8 s. y& r6 k5 ^! }6 }+ W- ~1 l6 l/ i! a$ o# X8 V# r
其中 f(1) = f(2) = 1 (对)
3 b# `( e2 W5 V* q' s5 {9 v3 d
4 ^) R5 R$ p8 O' u/ @% f2 X7 V
7 V) I9 x$ K+ l d* h4 u }
8 \" R* c0 H9 u从第3个月起,每个月兔子的总数f(n) 可以分为:; b, r8 j" G3 X4 a1 q; |& Z
# @9 y: Y+ D' q. A/ M, g
第n新出生的兔子 f(newN)8 ]# ]7 A. A" F5 h% A
第n月之前出生的兔子 f(beforeN)
) [7 ] w4 W! m% S即 f(n) = f(newN) + f(beforeN)
8 V6 A1 p' w1 _5 A! u% n8 m* F& S/ L( G' D5 F
= f(newN) + f(n-1)" A! W( {: x6 u2 W! }0 m
2 a' ~9 x* f* N4 ~9 }, `
+ D" k0 E, r7 x8 y; T
* ]+ {4 }, ]3 l* O( O! V- D
在第n+1个月里,第n个月新出生的兔子f(newN)还不能繁殖,数量不变;
* C+ {9 L# E: A @# z
5 x+ f% {) `0 E/ z4 v2 ]( p而第n个月之前出生的兔子f(beforeN),则可以成倍繁殖,数量X2
, c( j7 D5 q- S7 U, c. u- x ~1 c+ ?0 W5 Z
则 f(n+1) = f(newN) + 2(beforeN)X23 Z( r5 K+ X' d: Q: n/ X0 S: M
* j2 ]& j u& v/ J' D& H化简得 f(n+1) = f(n) + f(n-1)- R: y' S C0 ^7 g4 B0 `' }
( y' L2 x q: `# |6 c
即 f(n) = f(n-1) + f(n-2) (n=3,4,5,…)$ S: {/ c# |, j5 {) _' t3 D
6 W6 T3 A9 u+ Q* G
$ N6 i( `( |2 b) Y# y: Q- G8 k
% g; f- Y- c+ h- f! b; _所以,每个月的兔子总对数可以归纳为一个分段函数:
' S6 o- b2 N. h( y1 y/ b$ E8 o0 N. a9 w/ n( |8 E C, q
f(n) = 1 (n=1,2)" `* ~, F1 `# J, B; s( x
0 ^$ A ]' N* t9 ^0 Of(n) = f(n-1) + f(n-2) (n=3,4,5)
' [2 `0 M% F# Z1 e! a3 m* V6 P1 G7 d2 B, h5 _: N1 r
接着编程为递归函数即可解决问题。
" h1 w" Y4 i6 S- D
, N; e1 C# k8 W, K% B) C4 p" n" }# I- G
7 j0 Y8 U8 ~- x8 v2 W+ g+ {% ~! `3 C) k0 y; A: v
|
zan
|