- 在线时间
- 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个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?2 L/ Q8 }9 Z! g/ G3 I& n
解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)6 }& m: D& N0 B9 T1 \) p) h
8 w. G* Q) G4 X( F) m1 n其中 f(1) = f(2) = 1 (对)4 Y6 G( i& U7 h
. N" f+ v" ]' o! [- V( z" {+ V0 J H9 g! h
6 G! X* b5 x' p5 j* T( W
从第3个月起,每个月兔子的总数f(n) 可以分为:
5 H2 {; q/ k- R& ^& t7 J' a; i. r8 ^ A7 J- d
第n新出生的兔子 f(newN)4 U/ g4 \. |+ }' Z; `) f8 u$ `: I
第n月之前出生的兔子 f(beforeN)7 y' n: C* b* L$ F
即 f(n) = f(newN) + f(beforeN)
9 J' ^8 q- @9 f% o' c2 o+ S5 w" `7 O4 U6 i. Q
= f(newN) + f(n-1)
& l" g6 D" U0 j8 E7 @- T
5 @9 G; T0 ~. W( x% `2 T; o
: `. _$ b* m5 n4 o B0 Y* |9 I$ E/ A0 J5 L
在第n+1个月里,第n个月新出生的兔子f(newN)还不能繁殖,数量不变;, _9 ^6 _/ C+ ^7 X. _
2 `8 U0 t$ U7 _6 U! G% d
而第n个月之前出生的兔子f(beforeN),则可以成倍繁殖,数量X2# v6 R: \% ^' Q" H6 k2 N4 ^ K. \
4 j4 O: A7 z+ ~5 G7 ~2 X; g# h
则 f(n+1) = f(newN) + 2(beforeN)X25 p# L9 M4 x# k: l2 S+ O1 t
2 Z/ q! ~ N7 U6 i+ N化简得 f(n+1) = f(n) + f(n-1)6 C: Z w3 c/ t
* c0 \/ n" n8 ^0 D, j
即 f(n) = f(n-1) + f(n-2) (n=3,4,5,…)
) a/ V" s+ m; U. I
; G, L8 r* p; y
4 |" b. z4 B7 X' r! ?6 `0 a( u" v* v% y' M* V* S
所以,每个月的兔子总对数可以归纳为一个分段函数:6 n$ o! u- g7 y; c' x
0 Y1 {, N, w+ `: q# Z& Bf(n) = 1 (n=1,2)0 d5 B5 A9 D5 S& e
2 [ Y+ a) b3 X/ C wf(n) = f(n-1) + f(n-2) (n=3,4,5)5 `; g5 R" w6 `8 o2 A4 n7 |
7 F2 b& b! k" o. p0 w r: u: F
接着编程为递归函数即可解决问题。 z0 C( {5 S; r" F* j
. T0 `( x" k) T
6 W4 U' S2 X. U- j [* \8 X( D# l0 U, l% C3 v8 w: y- b9 E
7 o: ]* G7 v0 u" h. {: G% c |
zan
|