多语言展示
当前在线:1007今日阅读:155今日分享:35

VB6.0编程实现猴子吃桃经典数学问题的解算

在日常生活中,经常会遇到一种数学问题,就是一种计算要重复多次的做,并且要将计算出的最终结果作为下一次计算的初始值带入公式,计算出下一个结果,这样循环往复,直到得到满意的结果。     这是一种经典的算法,即“递推法”又称为“迭代法”,其基本思想是把一个复杂的计算过程转化为简单过程的多次重复。     接下来就以猴子吃桃的数学运算来解释这种VB6.0算法。
工具/原料
1

VB6.0

2

计算机(WIN7系统)

方法/步骤
1

猴子吃桃子。小猴在某天摘桃若干个,当天吃掉一半多一个;第二天吃了剩下的桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第糟购7天要吃时只剩下一个,问小猴共摘下了多少个桃子?

2

将以上问题用数学思维进行分析:这是一个“递推”问题,先从最后一天推出倒数第二天的桃子,再从倒数第二天的桃子推出倒数第三天的桃子……。设第n天的桃子为Xn,那么它是前一天的桃子数X(n-1) 的一半减1,即X(n-1) =( Xn+1)×2

3

X(n-1) =( Xn+1)×2这个公式被多次使用,而且这次的计算结果将作为下次计算的初始值,这类递推关系就是“迭代”,迭代的次数这里根据题目意思是6次。接下来用VB6.0编程进行实现。

4

打开VB6.0,新建一个工程,在窗体中添加一个命令按钮,caption改为“计算原有桃子数”,将Form1窗体的caption属性改为“迭代算法解猴子吃桃问题”,将界面设置成下图:

5

双击“计算原有桃子数”命令按钮,进入代码编辑窗口,输入如下代码:Dim n%, i%x = 1   ' 第7天的桃子t1 = Time    For i = 6 To 1 Step -1    x = (x + 1) * 2    Next i    Print '原有桃子数为:'; x; '只'    t2 = Time    Print '计算机花去'; _DateDiff('s', t1, t2); '秒时间';

6

关闭代码窗口,按下F5运行程序,单击“计算原有桃子数”命令按钮,在窗体Form1中输出结果,如图:

7

可以看出劫沟经过6天吃桃,第7天要吃时剩棍冲诉1个,推算出原有桃子190个。程序中还加入计算机得出结果所花时间的代码,由于计算机运算速度很快,所以不到一秒就得出结果,所以显示花去0秒时间。

注意事项
1

“迭代法”是一种经典的算法,在数学运算中经常要用到。

2

“迭代”算法可以用于误差计算与平差计算中。

推荐信息