作者Gsus (肉元)
看板java
标题Re: [问题] 1-42取出6+1个数字
时间Thu Jul 13 13:38:31 2006
※ 引述《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)