我用VB中的Rnd函数生成随机数,但发现有重复的,
用了Randomize发现还是有重复,到底VB能不能生成 一组不重复的随机数呢?
如何生成呢?那位高手可以帮帮我啊!!!!!

解决方案 »

  1.   

    自己写程序判断啊,
    看这贴 http://community.csdn.net/Expert/topic/4631/4631750.xml?temp=.9927332和你有相似的问题,不想再贴一次了
      

  2.   

    '可以指定数值范围中的指定个数的随机数,返回随机数数组。
    Private Function RandomNumber(lMin As Long, lMax As Long, lCount As Long) As Long()
        Dim n() As Long, i As Long, j As Long, q As Long, r() As Long
        On Error GoTo Err
        If lMax - lMin <= lCount - 1 Then
            ReDim r(lMin To lMax)
            For i = lMin To lMax
                r(i) = i
            Next
        Else
            ReDim r(j To lCount - 1)
            ReDim n(lMin To lMax)
            While j < lCount
                q = Int(Rnd(1) * (lMax - 1) + 1)
                If q >= lMin And q <= lMax Then
                    If n(q) = 0 Then
                        n(q) = 1
                        j = j + 1
                        r(j - 1) = q
    '                    Debug.Print q
                    End If
                    
                End If
                DoEvents
            Wend
        End If
    Err:
        RandomNumber = r
    End Function