vb如何出现不重复的几个随机数

来源:百度知道 编辑:UC知道 时间:2024/06/06 11:01:33
我要做一个程序,需要0-36的整数随机抽取7个。
自己做总是语句不正确,希望各位帮帮忙/
复杂点没关系,容易搞懂就行,最好在边上旁批解释一下
谢谢了~急。。
感谢各位的关注了,不过好像都不太明白啊。
要有Command1来开始摇号,再有Command2结束摇号。这时显示7个不重复的随机数(0到36)
高手们那~~~

Public Function GetRndNotRepeat(ByVal NumMin As Integer, ByVal NumMax As Integer, ByVal n As Integer)
'编制:xsfhlzh
'功能:取NumMin到NumMax间的n个随机整数
'说明:取数标志数组是Byte,每一位表示NumMin到NumMax间某个数的状态

Dim arr() As Integer

If n > NumMax - NumMin + 1 Then
ReDim arr(0)
arr(0) = 0
Else
ReDim arr(n)
Dim b() As Byte
Dim m As Integer
m = Int((NumMax - NumMin) / 8)
ReDim b(m)
'取数标志

Dim x As Integer, y As Integer
Dim z As Byte

Randomize
arr(0) = 1
For i = 1 To n
Do
'找到x的位置,y表示x在数组的第几个字节,z表示x在该字节的第几位
x = Int(Rnd * (NumMax - NumMin + 1)) + NumMin
y = x - NumMin
z = 2 ^ (y Mod 8)
y = y \ 8
Loop While b(y) A