VB常用算法(九)数学应用
1.算法描述
1)初等数学
递归方法
又称“迭代法”,其基本思想是将一个复杂的计算过程转化为一个简单过程的多次重复。每次都是在旧值的基础上推导出新值,用新值替换旧值。
问题:猴子吃桃子。
小猴子有些桃子,第一天就吃了一大半;第二天,吃剩下的一半以上...;就这样,到了第七天早上,只剩下一个桃子了。小猴子一开始有几个桃子?
解析:最后一天的桃子数可以由最后一天的桃子数推导出来;从倒数第二天开始,介绍倒数第二天的桃子数.........
设第n天的桃子数为xn,前一天的桃子数为Xn-1,则有关系式:
xn=xn-1/2-1
过程如下:
私有子命令1_Click()
Dim n%,i%
x = 1 '第七天的桃子数
打印“第七天的桃子数:1”
对于i = 6比1的步骤-1
x = (x + 1) * 2
打印"日" &i& "桃数:" &x& "只"
接下来我
结束Sub
穷举方法
也称为枚举法,它对所有可能的情况逐一进行测试,以确定是否满足条件。一般是通过循环来实现的。
问题:一百块钱一只鸡。
假设鸡是5毛钱一只;每只公鸡2元;每只母鸡3元。现在有100元,需要买100只鸡。编程列出了所有可能的买鸡方案。
分析:
如果分别有x、y和z只母鸡、公鸡和小鸡,则有:
x+y+z=100
3x+2y+0.5z=100
程序1:
私有子命令1_Click()
维度x%,y%,z%
对于x = 0到100
对于y = 0到100
对于z = 0到100
如果x + y + z = 100且3 * x + 2 * y + 0.5 * z = 100,则
打印x,y,z
结束If
下一个z
下一年
下一个x
结束Sub
程序2(优化)
私有子命令1_Click()
维度x%,y%
对于x = 0到33
对于y = 0到50
如果3 * x + 2 * y + 0.5 * (100 - x - y) = 100,则
打印x,y,100 - x - y
结束If
下一年
下一个x
结束Sub
高等数学
求积分
近似积分:s=∫13(x3+2x+5)dx
代码如下:
公共函数f(ByVal x!)'被积函数
f = x * (x * x + 2) + 5
结束函数
公共函数trapez(ByVal a!,ByVal b!,ByVal n%)为单身
'b和A分别是积分的上下限,n是等分数。
点心!,h!,x!
h = (b - a) / n
sum = (f(a) + f(b)) / 2
对于i = 1到n - 1
x = a + i * h
sum = sum + f(x)
接下来我
trapez = sum * h
结束函数
致电:
私有子命令1_Click()
打印trapez(1,3,30)
结束Sub
数论综合问题
这类话题涉及面比较广,一定要引起足够的重视。
历年题目有:平方数、奇数、准倒数、回文数、酉完全数、完全数、幸运数、逆数、无瑕素数、超级素数、因子和等。
2。实践练习
1)补充规范(2002年秋2 (10))
找出由两个不同数字组成的平方数,并按照图中的格式在列表框List1中显示结果。
选项显式
私有子命令1_Click()
[br/]Dim I As Long,N As Long
对于I = 11到300
(1)
如果验证(N ),则
(2)
结束If
接下来我
结束Sub
私有函数将((3))验证为布尔值
Dim A(0到9)为整数,I为整数,Js为整数
Do While N 0
(4)
N = N \ 10
循环
对于I = 0到9
Js = Js + A(I)
接下来我
(5)
结束函数
1)编程问题(2004年秋季08考卷)
一个正整数叫做幻方数,如果这个数的平方和它的倒数的平方都是倒数。举个例子,
1 2 ^ 2 = 144,21 ^ 2 = 441,12和21是倒数,144和441是倒数,12是魔方数。找出1-300内所有精彩的平方数。
0条评论