如何生成多个不重复的随机数呢?
for i = o to n 
  a(i)=cint(int(rnd()*n)+1)
next
可如何保证生成的随机数不重复呢?

解决方案 »

  1.   

    For i = 0 To n        a(i) = CInt(Int(Rnd() * n) + 1)
            
            For j = 0 To i
                If a(j) = a(i) Then
                    i = i - 1
                    Exit For
                End If
            Next
            
        Next
      

  2.   

    For i = 0 To n
    1000
            a(i) = CInt(Int(Rnd() * n) + 1)
            
            For j = 0 To i
                If a(j) = a(i) Then
                    GOTO 1000
                End If
            Next j
    Next i
      

  3.   

    前面给你有点错,你是要0-n的随机数吧?下边把n设为10,便于调试:Private Sub Command1_Click()
        Randomize
        Dim a(10) As Long
        n = 10
        For i = 0 To n        a(i) = Int(Rnd() * (n + 1))        For j = 0 To i - 1
                If a(i) = a(j) Then
                    i = i - 1
                    Exit For
                End If
            Next
        Next    For i = 0 To n
            Print a(i)
        Next
    End Sub
      

  4.   

    为了生成某个范围内的随机整数,可使用以下公式:Int((upperbound - lowerbound + 1) * Rnd + lowerbound)