java实现的根据概率随机中奖测试类
本文实例讲述了java实现的根据概率随机中奖测试类。分享给大家供大家参考,具体如下:
最近要做一个宝箱抽奖的功能自己先联系了一下,分别用list和set进行存储和抽取,做了一个时间消耗的对比,感觉list应该比set读取的要快些,但是这也不一定,希望大家能够共同讨论。
废话少说上代码:
packagecom.test.testRandom;
importjava.util.ArrayList;
importjava.util.HashSet;
importjava.util.Iterator;
importjava.util.List;
importjava.util.Random;
importjava.util.Set;
/**根据概率获取奖品的测试类*/
publicclassTestRandom{
publicstaticvoidmain(String[]args){
TestRandomtr=newTestRandom();
//用List随机
longbegin=System.currentTimeMillis();
for(inti=0;i<100;i++){
tr.getGumByList();
}
System.out.println("list使用时间:"+(System.currentTimeMillis()-begin));
//用set随机
longbegin1=System.currentTimeMillis();
for(inti=0;i<100;i++){
tr.getGumBySet();
}
System.out.println("set使用时间:"+(System.currentTimeMillis()-begin1));
}
/*Set获取*/
voidgetGumBySet(){
intrandom=newRandom().nextInt(100);
intprizeRate=0;//中奖率
Iteratorit=initSetGems().iterator();
while(it.hasNext()){
Gemgem=it.next();
prizeRate+=gem.getPriority();
if(randomit=initGems().iterator();
while(it.hasNext()){
Gemgem=it.next();
prizeRate+=gem.getPriority();
if(randominitGems(){
Listgums=newArrayList();
gums.add(newGem("20",20));
gums.add(newGem("7",7));
gums.add(newGem("30",30));
gums.add(newGem("24",40));
gums.add(newGem("3",3));
returngums;
}
/**初始化set*/
SetinitSetGems(){
Setgums=newHashSet();
gums.add(newGem("20",20));
gums.add(newGem("7",7));
gums.add(newGem("30",30));
gums.add(newGem("24",40));
gums.add(newGem("3",3));
returngums;
}
/**奖品类*/
classGem{
/**奖品名称*/
privateStringname;
/**奖品概率*/
privateintpriority;
publicGem(){
super();
}
publicGem(Stringname,intpriority){
super();
this.name=name;
this.priority=priority;
}
@Override
publicStringtoString(){
return"Gum[name="+name+",priority="+priority+"]";
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetPriority(){
returnpriority;
}
publicvoidsetPriority(intpriority){
this.priority=priority;
}
}
}
运行结果:
奖品为:20 概率:20随机数random:17概率基数prizeRate:20
奖品为:30 概率:30随机数random:54概率基数prizeRate:57
奖品为:3 概率:3随机数random:99概率基数prizeRate:100
奖品为:24 概率:40随机数random:87概率基数prizeRate:97
奖品为:24 概率:40随机数random:75概率基数prizeRate:97
奖品为:7 概率:7随机数random:21概率基数prizeRate:27
奖品为:20 概率:20随机数random:9概率基数prizeRate:20
奖品为:24 概率:40随机数random:77概率基数prizeRate:97
奖品为:20 概率:20随机数random:10概率基数prizeRate:20
奖品为:24 概率:40随机数random:83概率基数prizeRate:97
奖品为:30 概率:30随机数random:40概率基数prizeRate:57
奖品为:24 概率:40随机数random:78概率基数prizeRate:97
奖品为:24 概率:40随机数random:58概率基数prizeRate:97
奖品为:30 概率:30随机数random:44概率基数prizeRate:57
奖品为:7 概率:7随机数random:26概率基数prizeRate:27
奖品为:30 概率:30随机数random:56概率基数prizeRate:57
奖品为:24 概率:40随机数random:80概率基数prizeRate:97
奖品为:30 概率:30随机数random:50概率基数prizeRate:57
奖品为:30 概率:30随机数random:34概率基数prizeRate:57
奖品为:30 概率:30随机数random:27概率基数prizeRate:57
奖品为:20 概率:20随机数random:4概率基数prizeRate:20
奖品为:24 概率:40随机数random:87概率基数prizeRate:97
奖品为:20 概率:20随机数random:0概率基数prizeRate:20
奖品为:24 概率:40随机数random:96概率基数prizeRate:97
奖品为:7 概率:7随机数random:20概率基数prizeRate:27
奖品为:30 概率:30随机数random:44概率基数prizeRate:57
奖品为:30 概率:30随机数random:50概率基数prizeRate:57
奖品为:7 概率:7随机数random:23概率基数prizeRate:27
奖品为:24 概率:40随机数random:87概率基数prizeRate:97
奖品为:24 概率:40随机数random:93概率基数prizeRate:97
奖品为:30 概率:30随机数random:35概率基数prizeRate:57
奖品为:24 概率:40随机数random:79概率基数prizeRate:97
奖品为:30 概率:30随机数random:41概率基数prizeRate:57
奖品为:30 概率:30随机数random:42概率基数prizeRate:57
奖品为:24 概率:40随机数random:66概率基数prizeRate:97
奖品为:30 概率:30随机数random:50概率基数prizeRate:57
奖品为:30 概率:30随机数random:43概率基数prizeRate:57
奖品为:24 概率:40随机数random:88概率基数prizeRate:97
奖品为:30 概率:30随机数random:41概率基数prizeRate:57
奖品为:24 概率:40随机数random:74概率基数prizeRate:97
奖品为:24 概率:40随机数random:96概率基数prizeRate:97
奖品为:24 概率:40随机数random:90概率基数prizeRate:97
奖品为:24 概率:40随机数random:96概率基数prizeRate:97
奖品为:20 概率:20随机数random:2概率基数prizeRate:20
奖品为:24 概率:40随机数random:68概率基数prizeRate:97
奖品为:7 概率:7随机数random:25概率基数prizeRate:27
奖品为:20 概率:20随机数random:13概率基数prizeRate:20
奖品为:30 概率:30随机数random:52概率基数prizeRate:57
奖品为:30 概率:30随机数random:32概率基数prizeRate:57
奖品为:30 概率:30随机数random:54概率基数prizeRate:57
奖品为:24 概率:40随机数random:71概率基数prizeRate:97
奖品为:24 概率:40随机数random:90概率基数prizeRate:97
奖品为:3 概率:3随机数random:97概率基数prizeRate:100
奖品为:30 概率:30随机数random:52概率基数prizeRate:57
奖品为:24 概率:40随机数random:65概率基数prizeRate:97
奖品为:24 概率:40随机数random:87概率基数prizeRate:97
奖品为:30 概率:30随机数random:35概率基数prizeRate:57
奖品为:30 概率:30随机数random:37概率基数prizeRate:57
奖品为:30 概率:30随机数random:55概率基数prizeRate:57
奖品为:24 概率:40随机数random:77概率基数prizeRate:97
奖品为:24 概率:40随机数random:78概率基数prizeRate:97
奖品为:30 概率:30随机数random:53概率基数prizeRate:57
奖品为:20 概率:20随机数random:4概率基数prizeRate:20
奖品为:24 概率:40随机数random:80概率基数prizeRate:97
奖品为:20 概率:20随机数random:10概率基数prizeRate:20
奖品为:24 概率:40随机数random:69概率基数prizeRate:97
奖品为:30 概率:30随机数random:34概率基数prizeRate:57
奖品为:24 概率:40随机数random:80概率基数prizeRate:97
奖品为:24 概率:40随机数random:68概率基数prizeRate:97
奖品为:30 概率:30随机数random:28概率基数prizeRate:57
奖品为:24 概率:40随机数random:96概率基数prizeRate:97
奖品为:24 概率:40随机数random:66概率基数prizeRate:97
奖品为:20 概率:20随机数random:0概率基数prizeRate:20
奖品为:24 概率:40随机数random:66概率基数prizeRate:97
奖品为:24 概率:40随机数random:95概率基数prizeRate:97
奖品为:24 概率:40随机数random:77概率基数prizeRate:97
奖品为:20 概率:20随机数random:10概率基数prizeRate:20
奖品为:7 概率:7随机数random:24概率基数prizeRate:27
奖品为:30 概率:30随机数random:31概率基数prizeRate:57
奖品为:24 概率:40随机数random:80概率基数prizeRate:97
奖品为:24 概率:40随机数random:68概率基数prizeRate:97
奖品为:30 概率:30随机数random:54概率基数prizeRate:57
奖品为:30 概率:30随机数random:47概率基数prizeRate:57
奖品为:24 概率:40随机数random:66概率基数prizeRate:97
奖品为:24 概率:40随机数random:78概率基数prizeRate:97
奖品为:30 概率:30随机数random:39概率基数prizeRate:57
奖品为:30 概率:30随机数random:55概率基数prizeRate:57
奖品为:30 概率:30随机数random:50概率基数prizeRate:57
奖品为:30 概率:30随机数random:54概率基数prizeRate:57
奖品为:30 概率:30随机数random:33概率基数prizeRate:57
奖品为:30 概率:30随机数random:55概率基数prizeRate:57
奖品为:24 概率:40随机数random:80概率基数prizeRate:97
奖品为:24 概率:40随机数random:72概率基数prizeRate:97
奖品为:3 概率:3随机数random:98概率基数prizeRate:100
奖品为:24 概率:40随机数random:67概率基数prizeRate:97
奖品为:24 概率:40随机数random:82概率基数prizeRate:97
奖品为:7 概率:7随机数random:22概率基数prizeRate:27
奖品为:24 概率:40随机数random:66概率基数prizeRate:97
奖品为:20 概率:20随机数random:7概率基数prizeRate:20
奖品为:30 概率:30随机数random:43概率基数prizeRate:57
list使用时间:20
奖品为:7 概率:7随机数random:2概率基数prizeRate:7
奖品为:24 概率:40随机数random:49概率基数prizeRate:60
奖品为:24 概率:40随机数random:58概率基数prizeRate:67
奖品为:20 概率:20随机数random:51概率基数prizeRate:60
奖品为:24 概率:40随机数random:68概率基数prizeRate:80
奖品为:24 概率:40随机数random:30概率基数prizeRate:50
奖品为:24 概率:40随机数random:25概率基数prizeRate:60
奖品为:20 概率:20随机数random:41概率基数prizeRate:60
奖品为:24 概率:40随机数random:63概率基数prizeRate:100
奖品为:30 概率:30随机数random:15概率基数prizeRate:37
奖品为:30 概率:30随机数random:28概率基数prizeRate:30
奖品为:24 概率:40随机数random:80概率基数prizeRate:97
奖品为:20 概率:20随机数random:84概率基数prizeRate:97
奖品为:3 概率:3随机数random:0概率基数prizeRate:3
奖品为:24 概率:40随机数random:62概率基数prizeRate:97
奖品为:30 概率:30随机数random:17概率基数prizeRate:33
奖品为:20 概率:20随机数random:9概率基数prizeRate:23
奖品为:24 概率:40随机数random:17概率基数prizeRate:47
奖品为:20 概率:20随机数random:79概率基数prizeRate:90
奖品为:30 概率:30随机数random:47概率基数prizeRate:50
奖品为:24 概率:40随机数random:96概率基数prizeRate:97
奖品为:24 概率:40随机数random:37概率基数prizeRate:50
奖品为:30 概率:30随机数random:74概率基数prizeRate:97
奖品为:30 概率:30随机数random:57概率基数prizeRate:77
奖品为:24 概率:40随机数random:43概率基数prizeRate:47
奖品为:30 概率:30随机数random:36概率基数prizeRate:60
奖品为:24 概率:40随机数random:42概率基数prizeRate:50
奖品为:20 概率:20随机数random:22概率基数prizeRate:23
奖品为:24 概率:40随机数random:84概率基数prizeRate:100
奖品为:24 概率:40随机数random:24概率基数prizeRate:43
奖品为:24 概率:40随机数random:72概率基数prizeRate:97
奖品为:30 概率:30随机数random:12概率基数prizeRate:40
奖品为:24 概率:40随机数random:17概率基数prizeRate:40
奖品为:30 概率:30随机数random:22概率基数prizeRate:50
奖品为:20 概率:20随机数random:12概率基数prizeRate:20
奖品为:30 概率:30随机数random:60概率基数prizeRate:73
奖品为:24 概率:40随机数random:28概率基数prizeRate:60
奖品为:24 概率:40随机数random:41概率基数prizeRate:73
奖品为:24 概率:40随机数random:36概率基数prizeRate:47
奖品为:24 概率:40随机数random:80概率基数prizeRate:100
奖品为:30 概率:30随机数random:36概率基数prizeRate:37
奖品为:7 概率:7随机数random:46概率基数prizeRate:47
奖品为:24 概率:40随机数random:77概率基数prizeRate:100
奖品为:24 概率:40随机数random:79概率基数prizeRate:100
奖品为:7 概率:7随机数random:34概率基数prizeRate:37
奖品为:24 概率:40随机数random:39概率基数prizeRate:40
奖品为:30 概率:30随机数random:99概率基数prizeRate:100
奖品为:20 概率:20随机数random:43概率基数prizeRate:60
奖品为:7 概率:7随机数random:62概率基数prizeRate:67
奖品为:24 概率:40随机数random:42概率基数prizeRate:73
奖品为:7 概率:7随机数random:3概率基数prizeRate:7
奖品为:24 概率:40随机数random:86概率基数prizeRate:97
奖品为:24 概率:40随机数random:11概率基数prizeRate:43
奖品为:24 概率:40随机数random:58概率基数prizeRate:90
奖品为:24 概率:40随机数random:57概率基数prizeRate:77
奖品为:30 概率:30随机数random:52概率基数prizeRate:70
奖品为:7 概率:7随机数random:60概率基数prizeRate:67
奖品为:24 概率:40随机数random:85概率基数prizeRate:97
奖品为:20 概率:20随机数random:84概率基数prizeRate:97
奖品为:30 概率:30随机数random:84概率基数prizeRate:100
奖品为:24 概率:40随机数random:70概率基数prizeRate:73
奖品为:24 概率:40随机数random:83概率基数prizeRate:100
奖品为:24 概率:40随机数random:85概率基数prizeRate:93
奖品为:30 概率:30随机数random:75概率基数prizeRate:90
奖品为:20 概率:20随机数random:54概率基数prizeRate:70
奖品为:30 概率:30随机数random:51概率基数prizeRate:60
奖品为:24 概率:40随机数random:38概率基数prizeRate:40
奖品为:30 概率:30随机数random:52概率基数prizeRate:57
奖品为:20 概率:20随机数random:12概率基数prizeRate:23
奖品为:20 概率:20随机数random:14概率基数prizeRate:20
奖品为:24 概率:40随机数random:55概率基数prizeRate:90
奖品为:20 概率:20随机数random:45概率基数prizeRate:50
奖品为:7 概率:7随机数random:99概率基数prizeRate:100
奖品为:24 概率:40随机数random:32概率基数prizeRate:40
奖品为:30 概率:30随机数random:25概率基数prizeRate:50
奖品为:30 概率:30随机数random:96概率基数prizeRate:100
奖品为:20 概率:20随机数random:8概率基数prizeRate:20
奖品为:20 概率:20随机数random:17概率基数prizeRate:30
奖品为:20 概率:20随机数random:56概率基数prizeRate:60
奖品为:24 概率:40随机数random:3概率基数prizeRate:40
奖品为:7 概率:7随机数random:20概率基数prizeRate:27
奖品为:20 概率:20随机数random:3概率基数prizeRate:20
奖品为:24 概率:40随机数random:71概率基数prizeRate:100
奖品为:24 概率:40随机数random:44概率基数prizeRate:80
奖品为:24 概率:40随机数random:72概率基数prizeRate:93
奖品为:24 概率:40随机数random:73概率基数prizeRate:97
奖品为:20 概率:20随机数random:47概率基数prizeRate:50
奖品为:20 概率:20随机数random:58概率基数prizeRate:60
奖品为:24 概率:40随机数random:35概率基数prizeRate:70
奖品为:20 概率:20随机数random:12概率基数prizeRate:20
奖品为:30 概率:30随机数random:19概率基数prizeRate:30
奖品为:3 概率:3随机数random:7概率基数prizeRate:10
奖品为:24 概率:40随机数random:33概率基数prizeRate:60
奖品为:20 概率:20随机数random:83概率基数prizeRate:97
奖品为:30 概率:30随机数random:27概率基数prizeRate:30
奖品为:3 概率:3随机数random:99概率基数prizeRate:100
奖品为:24 概率:40随机数random:85概率基数prizeRate:100
奖品为:20 概率:20随机数random:89概率基数prizeRate:97
奖品为:30 概率:30随机数random:15概率基数prizeRate:30
奖品为:24 概率:40随机数random:41概率基数prizeRate:70
set使用时间:14
PS:这里再为大家提供几款功能类似的在线工具供大家参考:
在线随机数字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu
在线随机字符/随机密码生成工具:
http://tools.jb51.net/aideddesign/rnd_password
高强度密码生成器:
http://tools.jb51.net/password/CreateStrongPassword
更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java字符与字符串操作技巧总结》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。