- 在线时间
- 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个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
) ]# `' ]9 y' S' p8 R% t解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)
! u% I+ b) _! S3 V) I1 I* N3 H# v* V; N) N! x2 z& {$ m% m
其中 f(1) = f(2) = 1 (对): W9 X, D; N6 q- Y! `
8 _% V2 U+ Q! U9 O" ]4 ~5 k
& J. f7 `0 U7 I" Y: V' G( g3 ~: X$ e+ ~1 @
从第3个月起,每个月兔子的总数f(n) 可以分为:: v4 J8 j: Z, X1 g) _# g
# y; _$ G; n1 `3 i
第n新出生的兔子 f(newN)6 @: Y/ l! a+ \1 g5 @/ ?, U
第n月之前出生的兔子 f(beforeN)* ?8 t$ Q# _0 X( `+ t4 i9 g
即 f(n) = f(newN) + f(beforeN)
/ n9 W. I5 a, Q: m* D( P6 w, Z4 x# M5 J0 P
= f(newN) + f(n-1)8 b' C1 X; p5 L9 t7 v$ D6 e
! x' W: M' b, t8 G# W5 g
3 W" R7 K% s' w' N. o5 }
f! Z# r8 L$ r/ q0 c* b" p在第n+1个月里,第n个月新出生的兔子f(newN)还不能繁殖,数量不变;
& {, m3 T: q# V$ v4 d3 B! ]+ E
& D0 ?, R; \# V. T而第n个月之前出生的兔子f(beforeN),则可以成倍繁殖,数量X2
1 z Z/ y8 S" H& k7 t
6 V# E; Z2 {7 J: G则 f(n+1) = f(newN) + 2(beforeN)X29 i, L3 E4 d# ?
' N; ^& M0 p, l) i& a- r化简得 f(n+1) = f(n) + f(n-1)% x: \% A3 d- Z( ], R: W6 U
" N4 P8 R6 {3 f2 K3 w; m即 f(n) = f(n-1) + f(n-2) (n=3,4,5,…)- z# b* v: F/ J: W
* x, O6 z& G S0 ]6 w
( r4 j+ W, h0 k4 g+ y; {: V& I! T2 X
1 Q$ s4 y2 N* G! _# N, a所以,每个月的兔子总对数可以归纳为一个分段函数:5 F! d5 l* K/ d2 i
% j( j5 B' B U+ K3 l, Rf(n) = 1 (n=1,2)% C7 T3 H% b6 T
& j/ s* F, s" q3 t. Nf(n) = f(n-1) + f(n-2) (n=3,4,5)3 {' ?3 x1 V, v. Z7 m
4 ^. E( F- J" w* A3 Q" a' `接着编程为递归函数即可解决问题。
- i' c2 X: q1 v# B" X7 f1 C% j+ o. o M7 y: x9 `
: M3 |* N- I& A6 u0 ?% F
v P6 Z/ Q+ B/ J: Z0 \% c0 _ D7 u4 o# W% q) ]; Z8 s" c! V. j
|
zan
|