※ 引述《eyayaya (\ __ / <-- ZIP)》之銘言:
: 也是樂透的問題
: 用亂數選六個數字怎麼才能六個都不一樣呢?
: 謝謝請指教
假設樂透是1-42
做法1:檢查之前已經選出的數字
Dim i As Integer, j As Integer
Dim isUsed As Boolean
Dim R(1 to 6) As Integer
Dim tmpN As Imteger
'(R的索引為了方便故用1到6)
Randomize
For i = 1 To 6
Do
isUsed = False
tmpN = Int(Rnd * 42 + 1)
For j = 1 To i
If R(j) = tmpN Then
isUsed = True
Exit For
End if
Next j
Loop While isUsed
R(n) = tmpN
Next i
做法2:用42項陣列紀錄哪些是用過的數字
Dim i As Integer, tmpN As Integer
Dim N(1 to 42) As Boolean, R(1 to 6) As Integer
Randomize
For i = 1 To 6
Do
tmpN = Int(Rnd * 42 + 1)
Loop While N(tmpN)
N(tmpN) = True
R(i) = tmpN
Next i
這兩個的R()就是結果
因為是直接打的,如果有錯就指正一下吧...
--
┌╤═╮╤╮ ╤╭╤═╮╤ ╭═╭╤═╮╭══╮ 杜
║║ ║║║ ║║║ ║╟═╯ ╟╧═╢╰╤═╮ 姆
└╧═╯╰╧═╯╧╰ ╧╧ ╰═╧ ╧─╧═╯ 卡
--
※ 發信站: 批踢踢實業坊(ptt.csie.ntu.edu.tw)
◆ From: 61.216.80.18
※ 編輯: Dumkas 來自: 61.216.80.18 (05/02 17:53)