关于VB使用rnd()随机数的使用

来源:百度知道 编辑:UC知道 时间:2024/06/30 03:06:31
我如果在text1框中输入100,现在要随机出现几个接近100的数字,我应该怎么写程序。
(注:接近100的数字,误差为100的±A%左右,我在text2输入2.0,即A=2.0)
这样的随机数如何取得,请指教。谢谢!!

dim a as integer ,b as integer
Randomize
a= val(text2.text)
b = 100 - a + rnd*2*a
b就是所求数

给你列个通用公式吧,
产生x到y范围的随机数可以这样写,通用(x,y为整型):
int((y-x)*rnd+x)
很显然,你的情况,就相当于x=100-A,y=100+A
所以你的随机数可以写成
int(2*A*rnd+100-A)

'rnd返回的是0-1之间的任意值
dim a,b as integer
'这里类型自己看着办,要浮点就定义成浮点的
a = 2
'不知道你的VB是什么版本的,你可以把这句改成a = int(text2.text)
b = 100 + int(rnd*2a) - a
'rnd*2a返回0-2a之间的任意值,int(rnd*2a)返回0-2a之间的任意整数,int(rnd*2a) - a返回的是-a-a之间的任意整数,b则返回100±a
'这里把b返回就可以了

Private Sub Command1_Click()
Dim temp
temp = (Text1.Text - Text2.Text) + Rnd * (Text2.Text * 2)
MsgBox temp
End Sub