產生6個不重複隨機整數

網路上還有PTT上看到一些不重複隨機整數的寫法都有些複雜,看不太懂,
後來發現有一個寫法剛好看得懂,所以記錄一下!
可以自行輸入1?某數間,產生6個不重複的隨機整數。
原文在此


首先,先將表單設計完成,
1.新增一個可以自由輸入的Textbox。
2.新增一個Button。
3.新增要輸出產生6個亂數的Label(Label3?Label8)。
[ad#300*250(pic)][ad#300*250(pic)]

接下來在Form上下指令,將所有要呈現的亂數(Label3?Label8)設定為隱藏,
程式碼如下:

Label3.Text = ""
        Label4.Text = ""
        Label5.Text = ""
        Label6.Text = ""
        Label7.Text = ""
        Label8.Text = ""

最後在產生的button上下指令,產生6個不重複的隨機亂數。
程式碼如下:

Dim a, i, n, c, b(6) As Integer
        a = Val(TextBox1.Text)
        i = 1
        Randomize()
        If a < 6 Then
            MsgBox("請輸入6以上的數字", 16, "錯誤")
        Else
            Do While i <= 6
                n = Int(Rnd() * a) + 1
                b(i) = n
                For c = 1 To i - 1
                    If c < i And n = b(c) Then
                        i = i - 1
                    End If
                Next
                i += 1
            Loop
            Label3.Text = b(1)
            Label4.Text = b(2)
            Label5.Text = b(3)
            Label6.Text = b(4)
            Label7.Text = b(5)
            Label8.Text = b(6)
        End If

範例檔在此

分類: VB。這篇內容的永久連結

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *