推 zero1590:感謝~~~!!! 04/13 18:21
※ 引述《zero1590 (小白)》之銘言:
: 各位前輩好,我想產生4個亂數,
: 每個亂數不能一樣,
: 我想了一個晚上,
: 做出來以下的程式...
: dim a,i,j as integer
: dim take() as integer
: Randomize()
: For a = 0 To 3
: take(a) = Int(Rnd() * 10) + 1
: Next
: For i = 3 To 1 Step -1
: For j = i - 1 To 0 Step -1
: Do While take(i) = take(j)
: take(j) = Int(Rnd() * 10) + 1
: Loop
: Next
: Next
: label1.text=take(0) & " " & take(1) & " " & take(2) & " " & take(3)
: 這個程式的瑕疵在於take(3)和take(2)絕對不重複,
: 但是take(3)和(take(1)及take(0))會產生重複,
: take(2)也可能會和take(0)重複,
: 這個問題是因為i跑到2之後1跟0的值可能會產生改變
: 但是不會回去比對是否跟3的值一樣,
: i跑到1的時候0的值可能會產生改變,
: 但是不會回去比對2跟3的值,
: 問題就再於...怎麼樣才能使用迴圈,
: 然後能保證它不會重複出現啊~!!!
Dim a, i, j As Integer
Dim take(3) As Integer
Randomize()
Label1.Text = ""
For i = 0 To 3
For j = 0 To i
Do While a = take(j)
a = Int(Rnd() * 10) + 1
j = 0
Loop
Next
take(i) = a
Label1.Text &= take(i) & " "
Next
Label1.Text &= vbNewLine
改寫了一下,有問題再丟我水球或寄站內信吧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 222.156.10.204
※ 編輯: rike 來自: 222.156.10.204 (04/13 07:59)