原理如下:
1首先初始化一个待抽奖的数组nums,数组的长度k
2. 随机一个1-k之间的随机数,得到nums【k】,这样得到第一个抽奖号,nums中剔除该号码,k--。
3. 重复步骤2,直到得到全部中奖号码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
class myLuck { private int mTarget; List<Integer> mNums = new ArrayList<Integer>(); //摇奖池 ///从多少个数中产生多少个数 ///例如 33选6 则Source=33,Target=6; myLuck( int vSource, int vTarget) { for ( int i = 1 ; i <=vSource ; i++) { mNums.add(i); } mTarget=vTarget; } public String GetNums() { String xString= "" ; for ( int i = 0 ;i<mTarget; i++) { int _index=( int )(Math.random()* mNums.size()); xString+=mNums.get(_index)+ " " ; //System.out.print("("+(_index+1)+")"+mNums.get(_index)+"-"); //如何删除一个元素 mNums.remove(_index); } return xString; } } |
调用方式如下:
1
2
3
|
myLuck _red= new myLuck( 33 , 6 ); myLuck _blue= new myLuck( 16 , 1 ); String Str =_red.GetNums() + "," +_blue.GetNums(); |
很简单,将结果输出即可~
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/jsxu/p/6932829.html