看板java
标 题Re: [问题] 1-42取出6+1个数字
发信站无名小站 (Thu Jul 13 14:10:37 2006)
转信站ptt!ctu-reader!ctu-peer!news.nctu!netnews.csie.nctu!wretch
※ 引述《[email protected] (肉元)》之铭言:
> ※ 引述《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 ^^
我想的是把1~42的数字都放到array里面
每次取一个数字 取到的数字就跟最後一个数字交换
然後范围都减少一
直到取到你要的数量为止
--
~*~*~*~*~*~*~*~*~
┌┬┬┐┌┐┌┐┌┐ ┌┬┬┐╭┬┬╮┌┬┬┐┌┐
││││││││││ ││ │├┤│││││││
││││││││││ ││ ││││││││││
└└┘┘╰┴┴╯└┴─┘ └┘ └┘└┘└┘└┘└┘
~*~*~*~*~*~*~*~*~*~*~*~*~*~
--
夫兵者不祥之器物或恶之故有道者不处君子居则贵左用兵则贵右兵者不祥之器非君子
之器不得已而用之恬淡为上胜而不美而美之者是乐杀人夫乐杀人者则不可得志於天下
矣吉事尚左凶事尚右偏将军居左上将军居右言以丧礼处之杀人之众以哀悲泣之战胜以
丧礼处之道常无名朴虽小天下莫能臣侯王若能守之万物将自宾天地相合以降甘露民莫
之令而自均始制有名名亦既有夫亦将知止知止可以不 multani.Dorm8.NCTU.edu.tw海