- 在线时间
- 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个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?. J/ x+ q6 o. }1 o5 C
解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)
- ~' d4 V+ [" A0 \; _8 E, q/ T! r
8 N& s, |4 t" _: U% x, @" P9 l4 ?, m其中 f(1) = f(2) = 1 (对)* y/ H- W' K7 X. X0 A, f7 F2 N
# Y. Q7 y" c5 g# e
% P2 n( x4 A2 D4 w; o# S8 \* t* J% @1 t' s
从第3个月起,每个月兔子的总数f(n) 可以分为:
! `" d8 u$ N( [: C
" \' K0 }+ k" a" T8 }' p第n新出生的兔子 f(newN)
% B7 Q/ A& @, o7 M( L' Y# g' R) L第n月之前出生的兔子 f(beforeN)
( S$ J b; [- [; |; m7 K0 p; e: i f+ h! H即 f(n) = f(newN) + f(beforeN)
0 i/ X8 x/ V: ~" c7 T; t
1 p7 \$ {- y( o6 E; g* W3 J= f(newN) + f(n-1)
7 H) Z: w$ |# B: @: n" c& y" X& @" q- t9 m* |
. I/ ]$ h1 Z( {: N& E) {
- }. u: @% E0 V+ E# Q: C @在第n+1个月里,第n个月新出生的兔子f(newN)还不能繁殖,数量不变;
) V) ~7 S+ U, t7 @( @5 Y- O( _. f9 m: z$ x5 W5 t) m
而第n个月之前出生的兔子f(beforeN),则可以成倍繁殖,数量X2" V; b4 _$ i$ l9 v2 O+ o) b8 V
5 |, ^& c7 f9 Z) r则 f(n+1) = f(newN) + 2(beforeN)X2
! T) }$ X l9 Q( S8 R
~) g& u, i; ]) o化简得 f(n+1) = f(n) + f(n-1)
- ?8 S+ w. l, F3 P* ^% w8 k; ]5 G* n2 x0 `# L8 V
即 f(n) = f(n-1) + f(n-2) (n=3,4,5,…)+ F2 a- Y2 B1 L! ?3 K( {, f+ G
; w; `' s2 T9 ]' y- B
* v2 P; |" ], m" u+ q
. G1 b! q! W! p所以,每个月的兔子总对数可以归纳为一个分段函数:
) C4 q$ D J+ d) }" U" R* O
3 w7 l- C- t7 cf(n) = 1 (n=1,2)
9 o3 q. ~$ G: }& T0 \3 `
. ^/ y7 P U5 m: L% gf(n) = f(n-1) + f(n-2) (n=3,4,5)) ^( l7 E* _- F0 E/ M8 H- O& V
" P# v& E% R1 k5 \0 Z
接着编程为递归函数即可解决问题。+ G W! a& ^* E) Q8 l
- \% d p3 g3 i9 B: L7 [
# t8 n+ [5 i2 g( g7 a; y5 _5 r3 }0 O- x
: _. \3 o2 K! Y# k |
zan
|