- 在线时间
- 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个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?! ~9 R3 L: `* o- K( M7 Z
解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)
6 I# S- \* z: T) D' l% \
6 E) l2 S2 p& z& A& o" f其中 f(1) = f(2) = 1 (对)
1 M8 U$ m) h& p, S( A# s4 o
2 x" y/ M9 S8 w, E
& T' t8 J3 }5 |" J
3 ?& D* v2 ^$ j3 m9 l从第3个月起,每个月兔子的总数f(n) 可以分为:
; Z9 k6 L; p3 I" h) O
% y/ ~& D: B6 x* H( [$ U( I4 c! j第n新出生的兔子 f(newN)
; R( q4 e1 |$ Q& f( v2 V0 S第n月之前出生的兔子 f(beforeN)
1 W/ s8 U4 e# [即 f(n) = f(newN) + f(beforeN)8 Y2 Z% {9 G, L* T
% E6 G+ a. D% \+ u8 a= f(newN) + f(n-1)1 _& L( e' J2 M$ A6 i3 H
# L# E" V7 ]# {# Y: n! v( S$ d5 | n$ b. `
r9 Y5 Z& I+ x% R3 c P6 o在第n+1个月里,第n个月新出生的兔子f(newN)还不能繁殖,数量不变;
y) a/ e) p& U' n/ F5 u- M
1 U' n: U# \/ y, @7 B而第n个月之前出生的兔子f(beforeN),则可以成倍繁殖,数量X2
! S, q5 H9 y) s$ L. O p& B* ~$ `2 A3 A7 ]" z! R
则 f(n+1) = f(newN) + 2(beforeN)X2, v ^/ i; O& _9 q
' \& T! _ C0 _4 z) R0 Z @. V0 s化简得 f(n+1) = f(n) + f(n-1)
$ x8 z a% J2 a5 B4 M" q: f* f# g4 Z Q& V
即 f(n) = f(n-1) + f(n-2) (n=3,4,5,…)
: r# Z0 x4 g7 B. h; X: q( B* P. }" c9 ]: c% c
: k9 N6 d' V, q& S; A
' B% L5 O& I) e6 c5 k) n& X6 G5 r所以,每个月的兔子总对数可以归纳为一个分段函数:
\: k( g9 [% f: \" E
s4 P$ O, D' h6 e5 Df(n) = 1 (n=1,2) q$ s* j/ U5 h
7 v. j' p r& b/ c9 [. l6 |
f(n) = f(n-1) + f(n-2) (n=3,4,5), ?$ [: ]% h2 N% `* o4 X
+ {9 k" i& a- t D% _. c. |# `0 u
接着编程为递归函数即可解决问题。5 X1 o. d# u$ i7 L
( G1 M3 o3 T) m* B7 f* Z( [# h
, e# I8 r3 E7 w# M6 r" I6 A7 L5 C6 D! q* a
2 M8 f& @0 F7 Z1 T: |- h9 y) P |
zan
|