vb中的随机函数

来源:百度知道 编辑:UC知道 时间:2024/06/28 04:05:04
比如说
Randomize
Text1.Text = Int(Rnd() * 20) + 1

每次点了之后出现的数值 有时有一样的

我要6个这样的数值 每个数值都是不一样的 有什么方法啊

Private Sub Command1_Click()
Dim Ret(0 To 5) As Long
Dim Flag As Integer

Randomize Timer

For k = 0 To 5
Do
Ret(k) = Int(Rnd() * 20 + 1)
Flag = 0
For c = 0 To 5
If Ret(k) = Ret(c) Then Flag = Flag + 1
Next c
Loop Until Flag = 1
Next k

Print Ret(0); "-"; Ret(1); "-"; Ret(2); "-"; Ret(3); "-"; Ret(4); "-"; Ret(5)
End Sub

保证没有重复..- -#

Private Sub Command1_Click()
Text1 = ""
Dim i As Integer, j As Integer, a(1 To 100) As Integer
Randomize
For i = 1 To 6
a(i) = Int(Rnd() * 20) + 1
For j = 1 To i - 1
If a(i) = a(j) Then
j = i - 1
i = i - 1
End If
Next
Next
For i = 1 To 6
Text1 = Text1 & Str(a(i))
Next
End Sub

两种方法

1.定义一个数组,a(1 to 20),循环复制1-20,然后写个循环打乱顺序,输入前6个就没重复了

2.需要记录下已经生成的,每生成一个,判断下有没重复的,如果重复,重新生成,直到不重复