VB程序的一个算法

来源:百度知道 编辑:UC知道 时间:2024/09/23 00:42:06
有四个数:a,b,c,d。要求a+b+c+d=25,并且4=<a,b,c,d=<11。
而且可以随机的抽选。比如有一个command控件,我们可以点击这个控件,让四个text控件,随机的出现数字

求高手指点

PS:看《冒险岛》游戏突然想到的

我觉得这四个数应该为自然数吧?算法应该不难。
private sub cmdGo_click()
dim a,b,c,d as integer
Start:
Randomize
a=int(4*Rnd)
Randomize
b=int(11*Rnd)
Randomize
c=int(11*Rnd)
Randomize
d=int(11*Rnd)
if a+b+c+d=25 then
text1.text=a:text2.text=b:text3.text=c:text4.text=d
else
goto Start
end if
end sub

首先定义一个二维数组,n行,4列,比如a(n,3)
然后计算所有的符合条件的abcd组合,放入这个数组,每行为一个组合。
假设共有10个组合,那么数组a就定义为a(9,3)。
然后在command控件里产生一个0~9的随机数i,然后:
text1.text=a(i,0)
text2.text=a(i,1)
text3.text=a(i,2)
text4.text=a(i,3)
就实现了你的算法了。

private sub cmdGo_click()
dim a,b,c,d as integer
Start:
Randomize
a=int(4*Rnd)
Randomize
b=int(11*Rnd)
Randomize
c=int(11*Rnd)
Randomize
d=int(11*Rnd)
if a+b+c+d=25 then
text1.text=a:text2.text=b:text3.text=c:text4.text=d
else
goto Start
end if
end sub