作者zero1590 (小白)
看板Visual_Basic
標題[.NET] 欲使產生之亂數不重複的問題!
時間Tue Apr 11 08:01:51 2006
各位前輩好,我想產生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的值,
問題就再於...怎麼樣才能使用迴圈,
然後能保證它不會重複出現啊~!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.231.11.40