- 在线时间
- 90 小时
- 最后登录
- 2018-12-27
- 注册时间
- 2016-4-22
- 听众数
- 17
- 收听数
- 0
- 能力
- 20 分
- 体力
- 23459 点
- 威望
- 2 点
- 阅读权限
- 200
- 积分
- 7531
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 126
- 主题
- 100
- 精华
- 1
- 分享
- 0
- 好友
- 6
升级   50.62% TA的每日心情 | 开心 2018-6-4 15:01 |
---|
签到天数: 7 天 [LV.3]偶尔看看II
 群组: 2018年大象老师国赛优 群组: 高考备战 群组: 2018中小学数学建模冬 |
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
2 D/ i P5 p: ^解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)' r: S5 G3 v8 \) ^
: `7 W; D; P( `+ C" J: A; E
其中 f(1) = f(2) = 1 (对)# p B1 L' j4 ] S5 M( J
4 X2 i& _# s2 L+ U* p
9 w1 P6 v& j& R p: i( u% }, f2 `+ _4 n( S& T* u; M8 m2 H
从第3个月起,每个月兔子的总数f(n) 可以分为:
9 }$ s' R0 ]( z0 c: p. _. Y1 ~) d/ g; q \1 a) H8 T/ ]3 v
第n新出生的兔子 f(newN)$ a8 |$ B& I- G
第n月之前出生的兔子 f(beforeN). G* N, {3 V5 @$ v* i
即 f(n) = f(newN) + f(beforeN)
; Z9 m; d' V% z# P' K. ~( a" m+ u6 X! w, w' ~
= f(newN) + f(n-1)& ~' H( ~. Y6 J: {5 O
, |' w5 ~3 q1 p+ j- X, U3 @. c1 ^% s
* v5 H1 r+ j: R* K
' ]% h- x1 v6 N" v6 A在第n+1个月里,第n个月新出生的兔子f(newN)还不能繁殖,数量不变;% c: i6 E8 }( m$ Q# i0 Z
* y7 M7 h3 x& w而第n个月之前出生的兔子f(beforeN),则可以成倍繁殖,数量X2, w2 D' |, m1 `5 X# f
# t) t4 J) S |6 Z* d0 c
则 f(n+1) = f(newN) + 2(beforeN)X25 j, m ]. S5 j( I9 M! U S
2 B- G7 o$ K: w化简得 f(n+1) = f(n) + f(n-1)
7 V/ w0 w+ Y* F, q/ s) g- A
$ ^* x# D: U. w; j* F5 x7 A8 ?即 f(n) = f(n-1) + f(n-2) (n=3,4,5,…)
$ n7 }) w5 X/ ?- V* o" n/ |. Y4 E
4 u9 }$ S2 v( t( }* G, Y+ R# l' ?
! L2 o7 w$ k7 a" a所以,每个月的兔子总对数可以归纳为一个分段函数:& A/ p% e5 I& Z
1 L6 f% G; D/ ^6 x4 n1 Jf(n) = 1 (n=1,2)- R C1 F& Q+ S. u- z! d
; B p* u) Q' A7 Y2 Z
f(n) = f(n-1) + f(n-2) (n=3,4,5)3 G* r$ s! P, {* d1 y
, N J; E, d# A+ t$ E! m! h
接着编程为递归函数即可解决问题。
- A7 @8 B7 E2 Y1 r3 q9 S1 t# N. V- }4 P& f
/ p# n' H& y; ?1 j$ m% U! X' a2 Q! y& Y) W d' Q
% x; t$ ^. U; w6 l |
zan
|