- 在线时间
- 90 小时
- 最后登录
- 2018-12-27
- 注册时间
- 2016-4-22
- 听众数
- 17
- 收听数
- 0
- 能力
- 20 分
- 体力
- 23461 点
- 威望
- 2 点
- 阅读权限
- 200
- 积分
- 7532
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 126
- 主题
- 100
- 精华
- 1
- 分享
- 0
- 好友
- 6
升级   50.64% TA的每日心情 | 开心 2018-6-4 15:01 |
---|
签到天数: 7 天 [LV.3]偶尔看看II
 群组: 2018年大象老师国赛优 群组: 高考备战 群组: 2018中小学数学建模冬 |
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
4 J3 x2 H. I- a' r) D- b* d解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)
- V3 G$ p# `0 Y. [. T3 n A
7 E. J) x4 k1 X) z; k6 v' {" O3 P其中 f(1) = f(2) = 1 (对)4 ^- y8 r: K9 q3 P6 g* E
+ Q8 u; q8 y+ A5 r) e
5 j8 k4 B0 T. v6 t) i+ t9 Y$ p0 h1 T4 w! }4 I8 B* X
从第3个月起,每个月兔子的总数f(n) 可以分为:
" D. ^+ y- V6 Y1 h. j" A8 k4 w. H" z" z3 N, \, q
第n新出生的兔子 f(newN)
1 c" q! F) Q: r+ i7 |第n月之前出生的兔子 f(beforeN)
3 a$ Z6 @+ ?9 A, r即 f(n) = f(newN) + f(beforeN)+ Z8 Z6 B2 A8 A3 ^7 F; D' T
8 ?! X. w2 n" S [= f(newN) + f(n-1)% D: z8 x# Y9 A
1 u' \ @3 X5 r1 H+ u% L* D4 u J- L8 i) I* K7 H, D
4 C0 P: O# t# q' z在第n+1个月里,第n个月新出生的兔子f(newN)还不能繁殖,数量不变;( V/ r% G& N2 s$ E
' X7 c* v/ Y' ~而第n个月之前出生的兔子f(beforeN),则可以成倍繁殖,数量X2
0 J" M( r3 I3 l- j- m4 p% \" W8 l5 `7 ]
则 f(n+1) = f(newN) + 2(beforeN)X2
; i2 F1 N) ^1 _" s3 l
5 y0 O7 C' R2 M# H' o化简得 f(n+1) = f(n) + f(n-1): G6 g% w5 _4 o& s
+ d7 _4 z( E/ C即 f(n) = f(n-1) + f(n-2) (n=3,4,5,…)
+ i! W* f: ?. @8 l' Y. u( f
; e2 k! ?; L- H3 ^
6 I" `% L4 |. t" W8 Y
, ~5 Q7 v( J6 ^7 Y4 ]- y" D" z所以,每个月的兔子总对数可以归纳为一个分段函数:
% n4 Y* S8 I/ z" \8 h% n
( D2 `/ A3 h" a# h8 I! Kf(n) = 1 (n=1,2)7 [, }* k5 K$ e* _/ l1 i# Q
* [2 L- p2 `- F6 D* n$ X( l Y
f(n) = f(n-1) + f(n-2) (n=3,4,5)2 S3 b7 i9 C1 u, P' J
. N5 O/ n& v# _3 l/ V% P7 P/ X/ c' e
接着编程为递归函数即可解决问题。1 n' f+ [$ K( h( h2 c
0 F/ R* g4 C @8 P9 J+ j
5 q7 g \ X+ c- `( {. |+ g5 _- ^" }
6 Q* c4 Z1 [, y* ?& q; r+ u7 Z& H) w! S+ S
|
zan
|