static Hashtable getRandom(int arrange){ //保存抽奖结果的Hashtable Hashtable<String ,TreeSet> result = new Hashtable<String,TreeSet>(); //用于生成随即数 Random r = new Random();
//求出1,2,3等奖的个数 int no1_count = arrange/1000; int no2_count = arrange/100; int no3_count = arrange/5;
//使用TreeSet,避免产生重复的数 TreeSet<Integer> no1 = new TreeSet<Integer>(); while(no1.size()<no1_count){ no1.add(r.nextInt(arrange)); }
map<int, T> all;
// init ...
for (int i=0; i<size; ++i)
{
int idx=rand()%all.size();
cout<<alist[idx]<<endl;
alist.erase(idx);
}
// size/100
// size/5
import java.util.*;
public class TestRandom { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int test = 1000;
Hashtable result = getRandom(test);
System.out.println("no1 is:"+result.get("no1").toString());
System.out.println("no2 is:"+result.get("no2").toString());
System.out.println("no3 is:"+result.get("no3").toString()); }
static Hashtable getRandom(int arrange){
//保存抽奖结果的Hashtable
Hashtable<String ,TreeSet> result = new Hashtable<String,TreeSet>();
//用于生成随即数
Random r = new Random();
//求出1,2,3等奖的个数
int no1_count = arrange/1000;
int no2_count = arrange/100;
int no3_count = arrange/5;
//使用TreeSet,避免产生重复的数
TreeSet<Integer> no1 = new TreeSet<Integer>();
while(no1.size()<no1_count){
no1.add(r.nextInt(arrange));
}
TreeSet<Integer> no2 = new TreeSet<Integer>();
while(no2.size()<no2_count){
Integer temp = r.nextInt(arrange);
if(!no1.contains(temp)){ //判断这个数是否已经被抽出做1等奖
no2.add(temp);
}
}
TreeSet<Integer> no3 = new TreeSet<Integer>();
while(no3.size()<no3_count){
Integer temp = r.nextInt(arrange);
if((!no1.contains(temp)) //判断这个数是否已经被抽作1,2等奖
&& (!no2.contains(temp))){
no3.add(temp);
}
}
result.put("no1", no1);
result.put("no2", no2);
result.put("no3", no3);
return result;
}
}