作者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