vb产生不重复的随机数
发布网友
发布时间:2022-04-23 13:09
我来回答
共3个回答
热心网友
时间:2023-06-26 23:07
Private Sub Form_Load()
Randomize
Show
Dim a(1 To 30) As Integer, g(1 To 9) As Integer
a(1) = Int(10 + 90 * Rnd)
k = 1 'k表示生成的20个数字的个数
Do While k < 30
x = Int(10 + 90 * Rnd)
f = 0 '首先置f=0
If x = a(k) Then f = 1 '如果新生成的随机数x与a(k)相同,则置f=1,此处只与前一个值比较,是错误的
If f = 0 Then '如果x与a(k)不同,此时f=0
k = k + 1 'K增加一个数字
a(k) = x '把x赋值给a(k)数组
End If
Loop
For j = 1 To 30
Print a(j); '打印数组
If j Mod 10 = 0 Then Print '每10个一行
Next j
Print
For j = 1 To 30
h = Int(a(j) / 10)
g(h) = g(h) + 1
Next j
For j = 1 To 9
Print 10 * j; "-"; 10 * j + 9, g(j)
Next j
End Sub
热心网友
时间:2023-06-26 23:07
使用arraylist,每次随机产生数字后放入,检查contain(),为真则继续随机。
另一种方法比较猥琐,第一个text随机1-10,第二个text随机1-4加上第一个数字,第三个text随机1-2加上第二个数字,保证不重复。
热心网友
时间:2023-06-26 23:08
测试通过。朋友。