- 在线时间
- 90 小时
- 最后登录
- 2018-12-27
- 注册时间
- 2016-4-22
- 听众数
- 17
- 收听数
- 0
- 能力
- 20 分
- 体力
- 23469 点
- 威望
- 2 点
- 阅读权限
- 200
- 积分
- 7534
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 126
- 主题
- 100
- 精华
- 1
- 分享
- 0
- 好友
- 6
升级   50.68% TA的每日心情 | 开心 2018-6-4 15:01 |
|---|
签到天数: 7 天 [LV.3]偶尔看看II
 群组: 2018年大象老师国赛优 群组: 高考备战 群组: 2018中小学数学建模冬 |
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?# f @0 z3 @" ^9 }
解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)' t4 z* f5 [2 V: }2 u6 G$ E" X9 v
7 q7 \9 S6 S" M0 L6 e* q
其中 f(1) = f(2) = 1 (对)
1 W$ ]6 _4 p0 D$ Z o' T
* `0 w$ Q) O9 Q- F9 K* U# q D' o! | X6 X% q5 l
9 v4 c! U6 U8 d' }5 Y, I: J从第3个月起,每个月兔子的总数f(n) 可以分为:( Y+ E1 ]- ]* \! }( {: O
, K( D4 U9 G) P/ x* k2 y第n新出生的兔子 f(newN)
9 z/ h4 K4 h% Q0 G. O; C$ c第n月之前出生的兔子 f(beforeN)
: p+ {3 h! P7 E7 g0 h8 x即 f(n) = f(newN) + f(beforeN)( p! C3 S/ s5 K6 L
$ Z" r) D2 i$ z f$ h; ^) {, e= f(newN) + f(n-1)
5 B% P# q, \; s6 m+ z$ Q, E4 O; L' h
% v/ z' r2 ~# ]. u1 \+ Y
9 ~+ D: v, U1 d& \; H* `$ R0 K$ ^0 l
在第n+1个月里,第n个月新出生的兔子f(newN)还不能繁殖,数量不变;
- a! q6 P: @# f( Y- c2 X- x# ?6 K" a
而第n个月之前出生的兔子f(beforeN),则可以成倍繁殖,数量X20 W# a" n0 g) R5 r6 C
4 u. B) ^- g* Z+ i
则 f(n+1) = f(newN) + 2(beforeN)X2
% C. v+ X" d4 e% X5 V7 u9 C3 Y+ l2 t1 r7 |6 r |
化简得 f(n+1) = f(n) + f(n-1)
# k- w. Z+ S, K* l* k2 A: N! L
; t, r6 ?5 y1 N! p! M; } P即 f(n) = f(n-1) + f(n-2) (n=3,4,5,…)( i2 }' H M: u5 i E
$ Q* Z& Z' @$ [# I8 R- s' O0 z0 O
- o3 b0 ~. Y4 Z/ J- t9 l( n: p/ v- J. @5 U( c5 X: ~
所以,每个月的兔子总对数可以归纳为一个分段函数:0 X/ I" T' d k. f2 {: |7 c
% R% B. S7 d5 Z# u
f(n) = 1 (n=1,2)
1 A2 K- n: u2 K7 @# F% a4 { U. D* x8 p- r# \6 K0 \
f(n) = f(n-1) + f(n-2) (n=3,4,5)
* ]" r# l) D' O. P) }6 d1 E8 M% @
2 g" j9 m# s+ \1 ]% ]接着编程为递归函数即可解决问题。
/ v# r0 @5 G- a7 t( c; D# R. X! a2 B) ~$ E" a6 u. E t
2 `5 [, c9 ~1 U R! D g$ j& p+ }
: x, Q5 J: Q' p: A5 F4 t* m
# i. }: G8 ^3 o K2 x' q0 W |
zan
|