gaoyibing
2016-07-07 09:55:59
java简单的抽奖方法——配置概率(100以内随机数的一个解决方案)
用户抽奖的大致思路就是,当用户点击抽奖后,后台随机算出100以内的一个随机数,然后查看该随机数是否在中奖概率范围内。
抽奖概率写死的方法:
/**
* 抽奖概率
*
* @return rand
*/
public static int randomInt() {
int randomNum = new Random().nextInt(100) + 1;
if (randomNum == 1) {
return 1;
} else if (randomNum >= 2 && randomNum <= 5) {
return 2;
} else if (randomNum >= 6 && randomNum <= 10) {
return 3;
} else if (randomNum >= 11 && randomNum <= 50) {
return 4;
} else {
return 5;
}
}
从数据库读取概率配置(本次抽奖分五等奖)
public static int randomInt(LotteryPrizeEntry lotteryPrize) {
//概率不能为空,至少为0
if (lotteryPrize.getFirstPrize() + lotteryPrize.getSecondPrize()
+ lotteryPrize.getThirdPrize() + lotteryPrize.getFourthPrize() + lotteryPrize.getFifthPrize() > 100) {
return 0;
}
int randomNum = new Random().nextInt(100) + 1;
List<Integer> list = new ArrayList<Integer>();
list.add(lotteryPrize.getFirstPrize());
list.add(lotteryPrize.getSecondPrize());
list.add(lotteryPrize.getThirdPrize());
list.add(lotteryPrize.getFourthPrize());
list.add(lotteryPrize.getFifthPrize());
int prize = 1; //奖品级数
int num = 0; //存中奖概率数
int num2 = 1;//存中奖概率数
for (Integer i : list) {
num = +i;
if (i >= 1) {
if (randomNum >= num2 && randomNum <= num) {
return prize;
}
}
prize++; //奖级加一
num2 = +i;
}
return prize;
|
中奖概率配置表: BEGIN_TIME DATE 开始时间 |
猜你喜欢
请下载代码后再发表评论
相关代码
最近下载
最近浏览
含泪韵心眩 LV15
5月25日
managment LV3
2024年4月17日
SZEPEZS LV9
2024年3月11日
刘先森 LV8
2023年12月8日
EFWAGGFAWGR
2023年10月19日
暂无贡献等级
xiongwei11231 LV9
2023年9月27日
lipiao161 LV16
2023年7月3日
微信网友_6428778899361792 LV1
2023年4月11日
微信网友_6411724627349504 LV3
2023年4月3日
Cjl12121
2023年2月6日
暂无贡献等级



