產生6個不重複隨機整數

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


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

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

1
2
3
4
5
6
Label3.Text = ""
        Label4.Text = ""
        Label5.Text = ""
        Label6.Text = ""
        Label7.Text = ""
        Label8.Text = ""

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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。將永久鍊結加入書籤。

發表迴響

您的電子郵件位址並不會被公開。 必要欄位標記為 *

*

您可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>