作者Gsus (肉元)
看板java
标题Re: [问题] 1-42取出6+1个数字
时间Thu Jul 13 12:25:09 2006
※ 引述《infinitlee (Infinity)》之铭言:
: 你可以用vector 之类的容器,把random 出来的值丢进去,
: 下次在抓的时候用equals() 方式判断,如果为true 就再重新抓..
: 用各do{..}while()回圈包起来..不重复加1,直到抓满你要的数量
: 也许这种方式不是很好.. 但是应该可以帮你解决问题
如果用了vector
我建议不如当初42个数字就存进vector里面(O(n))
接着就for loop run 7次,
每次都random一个index(random的范围要一次缩小1),
依照此index去vector取值
取完後便把vector[index]remove掉(这就是为什麽random的范围会一次少1)
如此你怎麽样也不会取到相同的数字
你甚至可以random vector里面存的1~42的顺序
不过我觉得应该没必要
最後记得要用garbage collection ^^
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.106.130