VB 中怎么用随机函数产生50个10—100之间的互不相同的整数

来源:百度知道 编辑:UC知道 时间:2024/05/16 11:28:27
用VB做

思路是先设置一个定额数组 要取的值一一对应位置,每次抽取随机量就对比对应位置的值是否为0 如果不为0 就取 并置为0
直到取完为止
注意的是 待抽数组的长度一定要大于或等于要抽的数量 否则有可能进入死循环

Private Sub Form_Click()
'定义一个数组,两个变量
Dim a%(90), rNum%, rid%
'循环90次
For i = 0 To 90
'为数组赋值,每个值为当前i+10 即对应10-100
a(i) = i + 10
Next

'Do while循环 条件为小于50
Do While rid < 51
Randomize '初始化随机种子
rNum = Int(Rnd * 91) '生成随机量 0-90
If a(rNum) <> 0 Then '判断对应数组位置值是否为0
Print rNum '不为0 输出
a(rNum) = 0 '并置对应位为0
rid = rid + 1 '计数器加1
End If
DoEvents '返还系统控制
Loop
End Sub

最简单的方法就是利用数组,产生一个数以后就判断前面是否已经有这个数,如果有,那么重新生成这个数。
Private Sub Form_Click()
Dim a(1 To 50) As Integer, i As Integer, j As Integer
Randomize
For i = 1 To 50
a(i) = Int(Rnd * 91 + 10)
For j = 1 To i - 1
If