Re: [問題] 1-42取出6+1個數字
※ 引述《qrtt1 (愚者)》之銘言:
: ※ 引述《Gsus (肉元)》之銘言:
: [...]
: : 如此你怎麼樣也不會取到相同的數字
: : 你甚至可以random vector裡面存的1~42的順序
: : 不過我覺得應該沒必要
: : 最後記得要用garbage collection ^^
: 不好意思, 最後一句不明白
: 可否為我的愚昧稍為點講解?
假設vector現在的內容是:
1-> 2-> 3-> 4-> 5->....-> 25-> 26-> 27...
假設我現在是取第一個號碼(random的範圍是0~41)
random出來的數字是25,於是我就取出vector[25](which值=26)當作第一號
然後 vector.remove(25);(語法格式不確定對不對)
此時vector的內容會變成:
1-> 2-> 3-> 4-> 5->....-> 25-> 27...
且值27的index=25
所以整個vector的index會變成0~40
所以下一次Random決定index時,random的範圍要減1
不過要是random的範圍用變數vector.size()來做,
就不用顧慮"減1"這件事
--
假如用linked List
就不用作remove
因為get()時就會順便改變指標
如上面那位大所說的一樣
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.228.106.130
※ 編輯: Gsus 來自: 61.228.106.130 (07/13 13:41)
討論串 (同標題文章)