- 在线时间
- 90 小时
- 最后登录
- 2018-12-27
- 注册时间
- 2016-4-22
- 听众数
- 17
- 收听数
- 0
- 能力
- 20 分
- 体力
- 23472 点
- 威望
- 2 点
- 阅读权限
- 200
- 积分
- 7535
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 126
- 主题
- 100
- 精华
- 2
- 分享
- 0
- 好友
- 6
升级   50.7% TA的每日心情 | 开心 2018-6-4 15:01 |
|---|
签到天数: 7 天 [LV.3]偶尔看看II
 群组: 2018年大象老师国赛优 群组: 高考备战 群组: 2018中小学数学建模冬 |
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?% |1 x3 \) N& |& ?- g- k$ i/ [3 u
解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)5 {8 e+ e* E0 z
2 S9 m2 B& ~+ p4 l3 \' F5 R
其中 f(1) = f(2) = 1 (对)
6 |) L$ d* R. h" b# r1 k- U: \+ G* b! ?( o d0 X
9 N* b, e x" d. k+ p) f
. v, k6 q* P6 m5 p& k6 m' e从第3个月起,每个月兔子的总数f(n) 可以分为:' u% K7 B8 |' a: h: ?- o
; ~( I; T: v! X- S
第n新出生的兔子 f(newN)# e$ Y1 h( m( w8 [
第n月之前出生的兔子 f(beforeN)
+ y4 G& @7 q% H6 \3 i即 f(n) = f(newN) + f(beforeN)
/ X1 t% @6 o* |- V
' ?2 r8 w/ K" M; u* D8 K- f$ ]= f(newN) + f(n-1)/ f2 S" C' l6 u8 ]( `' R0 T: u
; H/ c0 }8 _+ r
. C. _7 |* n2 K8 P( l
5 @4 W! C" W/ r: A2 p: A% B! F+ t在第n+1个月里,第n个月新出生的兔子f(newN)还不能繁殖,数量不变;
( e: M7 k0 E0 K ^& j# \9 F( V) y, [1 ^ j: N. D: {
而第n个月之前出生的兔子f(beforeN),则可以成倍繁殖,数量X2
! f( v) \! p9 T/ Y6 ~- R c; r% T9 [
则 f(n+1) = f(newN) + 2(beforeN)X2) ]. I) u: U1 T3 }, z, {3 O
8 L( ^- X0 B2 n0 |; u4 |化简得 f(n+1) = f(n) + f(n-1)
7 y/ k; m8 X. j- a
$ l% t% ?" H5 S9 v! @即 f(n) = f(n-1) + f(n-2) (n=3,4,5,…)
! ? `5 |) o& D) s
: q9 E( n q% ~5 x! K/ H/ ^. I" H7 _) {
2 |/ n1 `; s j0 t% r9 B% w所以,每个月的兔子总对数可以归纳为一个分段函数:
9 d2 ^2 ^6 C! s2 [, f# B- u$ q& T6 R S( p% W$ g
f(n) = 1 (n=1,2)
4 N5 o$ }6 J$ k2 U5 c+ {) c1 I, v8 \& W0 a- E2 B- H: Y
f(n) = f(n-1) + f(n-2) (n=3,4,5): W& q" Y4 \$ o* z8 i. i8 y3 q
" ]9 z5 U, L& h8 `( r
接着编程为递归函数即可解决问题。
2 N" p4 y* x, k( ^! a* f2 w* j0 }: Z, u+ y: Z0 r' g4 O" Q* U ]$ D5 S
- i$ m7 e/ A0 [+ o$ p. g- ~! q5 f# I4 U( @( `
: m% L+ {; t: }9 u; { p
|
zan
|