抽奖算法 程序实现逻辑
初步方法
首先要定义几个奖品,例如:
?iphone 中奖机率 10%
?100元购物卷 中奖机率 30%
?10元购物卷 中奖机率 50%
总的中奖机率是 10%+30%+50%=90%
剩余10%是谢谢惠顾,不中奖的
设计思路
这个是把所有商品按照概率分配到数组里面
?A[0] = iphone
?A[1] = iphone
?A[2] = iphone
?...
?
A[10] = iphone
?
?A[11] = 100元购物卷
?A[12] = 100元购物卷
?
...
?
然后随机一个0到99的数字,例如现在随机的数字是2
那么A[2]就是中奖的商品A[2] = iphone
//定义中奖率分母 百分之int probabilityCount = 100;
String[] prizesId = new String[probabilityCount]; //获取商品列表
List<AdPrizeInfo> prizeInfoList = prizeInfoService.getPrizeInfo(); int num = 0; //循环所有商品for (AdPrizeInfo prize : prizeInfoList) {
Integer probability = prize.getOdds();
//循环商品概率
for (int i = 0; i < probability; i++) {
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余2页未读,立即下载