注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

一路奔跑

奔跑着一路向前...

 
 
 

日志

 
 

java 大转盘摇奖算法  

2013-01-15 14:16:14|  分类: Java进级中 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

说明:

@params list 放的是奖品ID,奖品等级,中奖概率(最小支持 0.0001% ,即百万分之一)

返回中奖等级:中了几等奖

/**  

  1.  * 积分抽奖算法  
  2.  *   
  3.  * @param list  
  4.  * @return  
  5.  */  
  6. private int getGameWinningLevel(List<giftDetailModel> list) {   
  7.   
  8.     // 中奖等级:未中奖   
  9.     int winningLevel = -1;   
  10.   
  11.     if (list == null || list.size() <= 0) {   
  12.         return winningLevel;   
  13.     }   
  14.   
  15.     // 中奖随机号   
  16.     int randomWinningNo = 0;   
  17.     int args[] = new int[list.size() * 2];   
  18.     int temp = (int) Math.round(Math.random() * 1000000000) % 1000000;   
  19.     int j = 0;   
  20.   
  21.     for (int i = 0; i < list.size(); i++) {   
  22.   
  23.         double tmpWinningPro = list.get(i).getWinningPro();   
  24.   
  25.         if (j == 0) {   
  26.             args[j] = randomWinningNo;   
  27.         } else {   
  28.             args[j] = args[j - 1] + 1;   
  29.         }   
  30.         args[j + 1] = args[j] + (int) Math.round(tmpWinningPro * 10000) - 1;   
  31.   
  32.         if (temp >= args[j] && temp <= args[j + 1]) {   
  33.             winningLevel = i + 1;   
  34.             return winningLevel;   
  35.         }   
  36.         j += 2;   
  37.     }   
  38.     return winningLevel;   
  39. }  
  评论这张
 
阅读(10343)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017