人气 3554

用VBA编写经典算法--递推法 [复制链接]

多看少说没错- 2017-5-22 16:33:29
什么是递推法? 即从已知条件出发,逐步推算出要解决的方法.就是递推法.下面通过经典案例来为大家讲解递推在现实中的应用.斐波那契在《算盘书》中提出了一个有趣的兔子问题:一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔都不死,那么一年以后可以繁殖多少对兔子?拿新出生的一对小兔子分析一下:第一个月小兔子没有繁殖能力,所以还是一对;两个月后,生下一对小兔总数共有两对;三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对;……依次类推可以列出下表:

1495442581625165.jpg

1495442581625165.jpg
通过上图可以发现一个规律,即:前面两项之和构成另一项写成公式: f(n)=f(n-2)+f(n-1)好了,那么接下来我们就可以根据以上公式写出如下代码:Sub 兔子() Dim x% Dim arr(13) For x = 1 To 12 If x < 3 Then arr(x) = 1 Else arr(x) = arr(x - 1) + arr(x - 2) End If Debug.Print "第"; x; "个月兔子的总数为:"; arr(x) Next End Sub 结果 如图:

1495442533809729.jpg

1495442533809729.jpg
您需要登录后才可以回帖 登录 | 立即注册

QQ|手机版|精益人 ( 沪ICP备19004111号-1 )|网站地图

GMT+8, 2024-12-22 23:01 , Processed in 0.474275 second(s), 23 queries .

Powered by Lean.ren X3.5 Licensed  © 2001-2030 LEAN.REN