作业帮 > 综合 > 作业

VB在一组数中随机抽5个数要求不能重复

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/13 05:44:50
VB在一组数中随机抽5个数要求不能重复
我有一组由30个数组成的数组,要求随机抽取5个数为一组共6组,每一组和组与组间不能重复
如:1,8,7,9,10
2,5,11,6,12
4,30,24,21,22
13,15,16,19,29
3,14,17,18,27
25,20,28,23,26
不知道如何用VB编写代码,请高手发个代码可以吗
'可以用集合对象来操作,每抽取一个数时,就把该项移除掉.这样就可以保证每个数只抽取一次.
'当然如果你提供的这系列数中本身有重复的数的话,那避免不了有重复的数了.
Private Sub Command1_Click()
Dim a
a = Array(1, 8, 7, 9, 10, 2, 5, 11, 6, 12, 4, 30, 24, 21, 22, 13, 15, 16, 19, 29, 3, 14, 17, 18, 27, 25, 20, 28, 23, 26)

Dim item
Dim col As New Collection
For Each item In a
    col.Add item
Next
'把数组中的数加入集合对象

'--------------------------------

Dim Index As Integer
Dim i As Integer
Dim strLine As String
For i = 1 To col.Count '每循环抽取一数
    Index = Int(col.Count * Rnd + 1) '获取随机下标量
    strLine = strLine & "," & col.item(Index) '将下标元素追加到strLine
    col.Remove (Index) '移除该下标元素
    If i Mod 5 = 0 Then Debug.Print Mid(strLine, 2): strLine = "" 'i被5整除时输出一行, 改变 5 可改变每行的项目数
Next
If strLine <> "" Then Debug.Print Mid(strLine, 2) '如有残留的不完全行也输出

    

End Su