- 在线时间
- 90 小时
- 最后登录
- 2018-12-27
- 注册时间
- 2016-4-22
- 听众数
- 17
- 收听数
- 0
- 能力
- 20 分
- 体力
- 23475 点
- 威望
- 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个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?3 w7 Q, c4 [" L0 M( y8 k' ]
解:由题意,设每个月的兔子总对数为f(n) ,(n = 1,2,3…)6 }, Q, x5 M* \
( e9 R. N l. ^0 F4 q9 {) A3 }其中 f(1) = f(2) = 1 (对). M. g# \& g1 x g( A
1 r5 z1 k8 h9 c8 h8 n6 \! R8 t5 X
* i6 Y5 a9 e8 Z
# f6 r; X a2 T1 a/ V从第3个月起,每个月兔子的总数f(n) 可以分为:
4 N, p' o* w( K4 j" T: k+ r8 Z& R* V% s
第n新出生的兔子 f(newN)
1 w! o: H/ s- F- t2 b第n月之前出生的兔子 f(beforeN)
7 n: }4 m) K2 U3 Y! C# U. B即 f(n) = f(newN) + f(beforeN)
) x8 @0 j3 k' W9 m* M8 e
& b( P" K% y) M& S4 p= f(newN) + f(n-1)
# C' o; @" O0 K v2 V0 ^2 }
3 i% _+ h3 F+ B7 \. Y3 U+ k2 t: n4 V7 {
+ Q; e5 m3 d Q; l2 Z4 l0 T3 N
在第n+1个月里,第n个月新出生的兔子f(newN)还不能繁殖,数量不变;
L/ G6 t+ s$ {8 _ A- h4 A, t/ R
而第n个月之前出生的兔子f(beforeN),则可以成倍繁殖,数量X2- g$ k* G% F1 w6 r; n4 V/ l6 _! ?
1 t) z& q+ S8 \# F5 Z. J
则 f(n+1) = f(newN) + 2(beforeN)X23 W! `: i4 l- Q. }0 B7 s# A
/ j7 l, O8 E+ Q4 l# E3 T+ V化简得 f(n+1) = f(n) + f(n-1)
' W$ i- M+ T9 s! `/ J1 n8 R+ U: W9 j) i' W$ I' U# [
即 f(n) = f(n-1) + f(n-2) (n=3,4,5,…)
" L0 T; ~! k$ v% U+ M% e1 a4 B0 u$ z! }- O1 G
( {8 I D; v8 R0 j
) k o; R7 ~# J/ z- L1 w- m1 H所以,每个月的兔子总对数可以归纳为一个分段函数:- {) e3 B5 K8 d& ^4 ^# j0 Q
; k# _4 ?: ^: |
f(n) = 1 (n=1,2); i; f, h2 y+ `5 w9 _' M
+ @5 C% |3 r( M. q) Y
f(n) = f(n-1) + f(n-2) (n=3,4,5)* b) E2 @/ X8 b. M
8 k! ]; T: u- U6 N4 m3 D接着编程为递归函数即可解决问题。
! ?! D4 d G1 y0 @6 w9 }3 i& ^
5 N+ h2 a" ?* j: s* t2 w: ~. y" r% F) L2 |
* h* P" l$ w6 b
1 O! E$ k2 w, \ |
zan
|