看板java
标 题Re: [问题] 1-42取出6+1个数字
发信站资讯传奇 (Thu Jul 13 13:28:56 2006)
转信站ptt!ctu-reader!ctu-gate!news.nctu!ccnews.nchu!ccnews.thu!inf
【 在
[email protected] () 的大作中提到: 】
: 创一个LinkedList 把所有数字丢进去
: 再随机抓出来就好...
: LinkedList list=new LinkedList();
: Random r= new Random();
: for(int i=0;i<=42;i++){
: list.add(new Integer(i));
: }
: for(int i=0;i<6;i++){
: System.out.println(
: ((Integer)list.get(r.nextInt(list.size()))).intValue()
: );
: }
: 好长的一行啊 XD
这样子还是会重复呀,要不重复的话应该把 list.get() 改成 list.remove()
另外前面已经有版友提到可以使用 Set,不过那篇好像没转进 ptt
如果是使用 Set 的话,只需要不断重复将数字放进 Set
并且判断 Set size 是否为你需要的数字数量即可
--
NPDA - Non-deterministic PushDown Automata
(不确定是否推倒自动机)
DPDA - Deterministic PushDown Automata
(确定会推倒自动机)
得证: DPDA 效率比较高
※ 来源:‧资讯传奇 inf.csie.thu.edu.tw‧[FROM: 220-131-153-63.HINET-IP.hinet.]