如何在VB里生成a个无序不重复的随机数

来源:百度知道 编辑:UC知道 时间:2024/05/16 16:19:47
比如现在a=10就要生成10个无序不重复的随机数并依次存入b
此题提问错误。。。
改下:
比如现在有b个像a(0),a(1),a(2)……这样的数据,如果现在b为10,就会有a(0),a(1),a(2),a(3)…a(7),a(8),a(9),
现在我要让这些数据随机打乱再存入b(1),b(2),b(3)……
要怎么做到?
=======================================================
给我代码。。。

用数组吧 或者用下text控件 已经选取的数标记为1 没有选取的为0

我不要你的分 只是给你提供个思路

自己想出来的办法 会永远记得

Private Sub Command1_Click()
Dim n As Integer
n = Val(InputBox("输入元素个数")) - 1 '用键盘输入数组元素个数,即上界
ReDim a(n) As Integer '定义数组
ReDim b(n) As Integer

For i = 0 To n
Line1:
a(i) = Fix(Rnd * 100) + 1 '随机生成1到100的整数
For j = 0 To i - 1
If a(i) = a(j) Then '检查新生成的数是否和之前的数重复
GoTo Line1 '若有重复就跳回Line1行重新生成
End If
Next
Next

'输出a数组各元素的值
For i = 0 To n
Print a(i);
Next
Print

'把a数组打乱放入b数组
For i = 0 To n
Line2:
b(i) = a(Fix(Rnd * (n + 1))) 'b数组中的第i个元素的值随机等于a数组中的一个元素
For j = 0 To i - 1
If b(i) = b(j) Then '检查新取得的值是否和之前的重复
GoTo Line2 '若有重复就跳回Line2行重新生成
End If
Next
Next

'输出b数组各元素
For i = 0 To n
Print b(i);
Next
Print
End Sub

dim a(10) as long
dim b(10) a