随机抽取N个不相等的数


【实例说明】
    在随机取数时,可能会出现相等的数。

【编程思路】
    动态数组。

【设计步骤】
    1.新建一个标准工程,创建一个新窗体,默认名为Form1。
    2.在窗体上添加一个CommandButton控件。

    3.源程序  [素材源程序下载]


Option Explicit

Option Base 1

Private A() As Long
Private i As Long
Private N As Long

'取在1~~25内的20个不同的数
Private Sub Command1_Click()
        Me.Cls

        N = 20

        Call sVaryNumber(N)

        For i = 1 To N
                Print A(i)
        Next i
End Sub

'取N个不相等的数
Private Sub sVaryNumber(ByVal N As Long)
        ReDim A(N)

        A(1) = fRndNumber

        For i = 2 To N
                Call sGetNumber
        Next i
End Sub

'取不相等的数
Private Sub sGetNumber()
        Dim j As Long

        A(i) = fRndNumber

        For j = 1 To i - 1
                If A(i) = A(j) Then
                        Call sGetNumber
                End If
        Next j
End Sub

'取1~~25之间的随机数
Private Function fRndNumber() As Long
        Randomize
        fRndNumber = Int(Rnd * 25) + 1
End Function