- 在线时间
- 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个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
M' ^ q" g" a) j, {2 i k: E6 R! Q解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)( y% T1 N7 O9 N% {( H1 b! W4 d
( i$ d; u- y% ]
其中 f(1) = f(2) = 1 (对)
& h# x. G" l; z' R. R: E8 L+ O n2 F* ~) Q
0 j# f* x! Y4 T/ F+ \. ^. e6 B- y% e* S( ^9 e9 J2 U! V, P
从第3个月起,每个月兔子的总数f(n) 可以分为:
$ H! U! p) x( W9 ^$ T6 d
# q9 T0 w7 c& B" t) J& A第n新出生的兔子 f(newN)8 D3 T B o0 x! b$ r9 U
第n月之前出生的兔子 f(beforeN)
2 q5 p% g1 t$ N+ Z5 _即 f(n) = f(newN) + f(beforeN)
: S# ?2 O2 J- P
: m/ q# J- M. x% K= f(newN) + f(n-1)4 [# j9 Z0 A4 ~) \ s. T
! L1 s+ ] a4 `7 }
9 j: p" c |7 c
]7 h5 L% B) k7 ?在第n+1个月里,第n个月新出生的兔子f(newN)还不能繁殖,数量不变;
' k% n# S Q3 t, e
- f: F u3 s& x, z9 V而第n个月之前出生的兔子f(beforeN),则可以成倍繁殖,数量X2
$ W% P* X0 p; V g4 r! S2 p% ]
1 D. r2 W9 X. o! G/ V+ Z: [则 f(n+1) = f(newN) + 2(beforeN)X2! N8 s3 A, y4 J& R6 f! G8 d/ X8 {
3 z; X- v2 M: }+ q) L" w化简得 f(n+1) = f(n) + f(n-1)
9 w: n2 _" c. J; q. E" d6 L: h3 f2 k; A# k) w
即 f(n) = f(n-1) + f(n-2) (n=3,4,5,…)/ m4 {6 I* C' k. F9 L G
! c6 R# l3 v; R- g; d) L" d
! X# N2 J) P3 A+ Q" J! p; u* n5 Z+ Y- F" I( s2 V! s; H/ j
所以,每个月的兔子总对数可以归纳为一个分段函数:! `2 n1 g" S- y5 u6 C- |3 `& O8 o
, l7 A; _6 s0 a! n5 v
f(n) = 1 (n=1,2)
' {; l1 N- {0 ~, J& l, u" H# k5 q& S7 R/ Q7 d+ _( W% \- _- q
f(n) = f(n-1) + f(n-2) (n=3,4,5)2 { F. N$ M" S( O( y
) w: r3 A( o9 }& B接着编程为递归函数即可解决问题。
: ~7 K7 G% f2 N) Z4 G
, K, I6 Q _# _
3 l- A7 q( a& r& m5 }! C: N# x9 [8 D4 d6 M7 U8 h( n
2 c) D, B3 X1 D L1 Y$ F |
zan
|