用vb得到随机数

来源:百度知道 编辑:UC知道 时间:2024/05/25 23:18:36
用vb得到随机数:要求:
1-19不能重复

得到指定范围随机整数 公式 cint(rnd*(最大值-最小值+1))+最小值

不重复的话,可以使用个巧妙的方法

1,添加一个list控件 其list中有1-19 共19行

2, 每得到一个随机数,就去掉list控件中的相应行,然后把公式中的最大范围 减 1

3,具体代码
dim iOutIndex as Integer '定义要得到的list中的索引 index
dim iOut as Integer '定义要得到的结果
dim iLes as Integer '定义需要减少的范围
'上面三行定义放到最外面,别放到过程内啊,其实也就iLes需要

Function iRnd() as Integer
iOutIndex=cint(rnd*(18-iLes-0+1))+0
iOut=list1.list(iOutIndex)
list1.RemoveItem(iOutIndex)
iRnd=iOut
iLes=iLes+1
End Function

每调用一次iRnd得到一次结果(1-19不重复)

如:全部输出
for x=1 to 19
print iRnd
next

很麻烦。

Private Sub Form_Load()
Randomize
Dim Number_Rnd(0 To 19) As Integer
For i = 1 To 19
Number_Rnd(i) = Int(Rnd() * 19) + 1
For j = i - 1 To 1 Step -1
If Number_Rnd(i) = Number_Rnd(j) Then
i = i - 1
Exit