VB6.0
计算机(WIN7系统)
猴子吃桃子。小猴在某天摘桃若干个,当天吃掉一半多一个;第二天吃了剩下的桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第糟购7天要吃时只剩下一个,问小猴共摘下了多少个桃子?
将以上问题用数学思维进行分析:这是一个“递推”问题,先从最后一天推出倒数第二天的桃子,再从倒数第二天的桃子推出倒数第三天的桃子……。设第n天的桃子为Xn,那么它是前一天的桃子数X(n-1) 的一半减1,即X(n-1) =( Xn+1)×2
X(n-1) =( Xn+1)×2这个公式被多次使用,而且这次的计算结果将作为下次计算的初始值,这类递推关系就是“迭代”,迭代的次数这里根据题目意思是6次。接下来用VB6.0编程进行实现。
打开VB6.0,新建一个工程,在窗体中添加一个命令按钮,caption改为“计算原有桃子数”,将Form1窗体的caption属性改为“迭代算法解猴子吃桃问题”,将界面设置成下图:
双击“计算原有桃子数”命令按钮,进入代码编辑窗口,输入如下代码: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); '秒时间';
关闭代码窗口,按下F5运行程序,单击“计算原有桃子数”命令按钮,在窗体Form1中输出结果,如图:
可以看出劫沟经过6天吃桃,第7天要吃时剩棍冲诉1个,推算出原有桃子190个。程序中还加入计算机得出结果所花时间的代码,由于计算机运算速度很快,所以不到一秒就得出结果,所以显示花去0秒时间。
“迭代法”是一种经典的算法,在数学运算中经常要用到。
“迭代”算法可以用于误差计算与平差计算中。