[.NET] 欲使產生之亂數不重複的問題!

看板Visual_Basic作者 (小白)時間19年前 (2006/04/11 07:53), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/3 (看更多)
各位前輩好,我想產生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
文章代碼(AID): #14Ek_fCw (Visual_Basic)
文章代碼(AID): #14Ek_fCw (Visual_Basic)