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 开始时间 |
猜你喜欢
请下载代码后再发表评论
相关代码
最近下载
最近浏览
managment LV3
4月17日
SZEPEZS LV8
3月11日
刘先森 LV8
2023年12月8日
EFWAGGFAWGR
2023年10月19日
暂无贡献等级
xiongwei11231 LV8
2023年9月27日
lipiao161 LV16
2023年7月3日
微信网友_6428778899361792 LV1
2023年4月11日
微信网友_6411724627349504 LV3
2023年4月3日
Cjl12121
2023年2月6日
暂无贡献等级
浪里格朗 LV4
2023年1月31日