- 在线时间
- 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个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?, `& E3 ^! T1 `& e" _ [% W3 f% y
解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)
2 l* Y W$ l5 |1 E; F" w0 B
$ A' M9 K5 @6 U其中 f(1) = f(2) = 1 (对)
. H$ m: Y8 e) y: F$ e- l7 H$ c3 s& k6 ]4 j2 `' B) K; E
7 u1 q! ]3 i, c+ G# f, ?* q
# o- b* @! u1 i2 |
从第3个月起,每个月兔子的总数f(n) 可以分为:3 Z7 O; C- b. i2 W
' W0 o) |. H5 b7 i) T
第n新出生的兔子 f(newN)
* ], X6 M) }1 A8 I, F; V+ m, K第n月之前出生的兔子 f(beforeN)
0 V8 N* o3 m) H# H4 ]+ O% ~# x即 f(n) = f(newN) + f(beforeN)9 i/ x- g# t, d
+ l& }( m: U- P) O& N M+ B= f(newN) + f(n-1)0 K8 O' Z5 Q; R9 d5 O
, \* g4 Z( d" T% m3 D# v
- l- t6 a% s9 ?% U, y R2 w
* B/ ]8 b" _2 K# \# \9 [% K4 W
在第n+1个月里,第n个月新出生的兔子f(newN)还不能繁殖,数量不变;6 ~, m$ h- C$ m9 ?0 ?0 F7 Z# B
+ r' X- ]$ M+ k4 \; {而第n个月之前出生的兔子f(beforeN),则可以成倍繁殖,数量X2
3 r; N3 B3 L' t! @8 W3 k) c, ]" Z" f3 \% w- ?6 w5 N; L
则 f(n+1) = f(newN) + 2(beforeN)X2
: S8 `% j3 m/ g! S8 Y& ~( g$ X7 K" v- S( Q! E5 ]
化简得 f(n+1) = f(n) + f(n-1)
5 S: L$ y' A$ q# {; f8 i# V1 ^
9 U! R: m/ E w. ]# _+ A9 |3 \即 f(n) = f(n-1) + f(n-2) (n=3,4,5,…). D+ h1 b9 B1 ^. w" ?9 ^6 L; h, a3 b
0 r; L: ?/ l+ W0 X% o/ ^
5 \ v8 d7 y; s0 N7 ?- S1 \3 ]9 R: |2 p* m% x; P
所以,每个月的兔子总对数可以归纳为一个分段函数:8 N/ d% e( q; A f
( _- M+ Y' ], G9 S! x5 S' R0 s: Q0 of(n) = 1 (n=1,2)* \/ {$ ?+ ^7 o' n& g
4 E- F$ y. T; l8 K4 y4 qf(n) = f(n-1) + f(n-2) (n=3,4,5)
8 u$ G1 y/ G; d3 m+ Y+ @# i- _. q3 L
接着编程为递归函数即可解决问题。1 E5 n9 N# g& b: f! p7 V
* \; R# Q8 U8 X8 {
0 y7 `' |9 q% r& H0 a
- G: B( v- J7 ^8 a1 y
6 v* h+ e! W! n- _
|
zan
|