JAVA抽奖的算概率法
2015-07-09 16:13
585 查看
php:
data.php处理前端发送的ajax请求,我们才用概率算法,根据设置好的中奖概率,将中奖结果以json的格式输出。关于概率计算的例子可以参照:PHP+jQuery实现翻板抽奖
优先级规则使高等奖尽量在后期抽出
data.php处理前端发送的ajax请求,我们才用概率算法,根据设置好的中奖概率,将中奖结果以json的格式输出。关于概率计算的例子可以参照:PHP+jQuery实现翻板抽奖
$prize_arr = array( '0' => array('id'=>1,'prize'=>'平板电脑','v'=>3), '1' => array('id'=>2,'prize'=>'数码相机','v'=>5), '2' => array('id'=>3,'prize'=>'音箱设备','v'=>10), '3' => array('id'=>4,'prize'=>'4G优盘','v'=>12), '4' => array('id'=>5,'prize'=>'Q币10元','v'=>20), '5' => array('id'=>6,'prize'=>'下次没准就能中哦','v'=>50), ); foreach ($prize_arr as $key => $val) { $arr[$val['id']] = $val['v']; } $rid = getRand($arr); //根据概率获取奖项id $res['msg'] = ($rid==6)?0:1; //如果为0则没中 $res['prize'] = $prize_arr[$rid-1]['prize']; //中奖项 echo json_encode($res); //计算概率 function getRand($proArr) { $result = ''; //概率数组的总概率精度 $proSum = array_sum($proArr); //概率数组循环 foreach ($proArr as $key => $proCur) { $randNum = mt_rand(1, $proSum); if ($randNum <= $proCur) { $result = $key; break; } else { $proSum -= $proCur; } } unset ($proArr); return $result; }
优先级规则使高等奖尽量在后期抽出
相关文章推荐
- Java执行操作系统命令
- JAVA中String类
- java调用JDBC连接MySQL 以及MySQL日常维护的简单操
- eclipse jar包关联源码(android 开发)
- java使double保留两位小数的多方法 java保留两位小数
- House Robber
- MyEclipse8.5破解方法
- Spring学习(18)--- AOP基本概念及特点
- java设计模式之工厂模式
- java静态方法、非静态代码块{}、静态代码块static{}
- java函数参数默认值
- SSH中 struts hibernate spring 各起什么作用?
- 【Spring-AOP-学习笔记-4】@After后向增强处理简单示例
- 将jar包导入myeclipse
- JDK的动态代理
- Java关键字final、static使用总结
- java 函数形参传值和传引用的区别
- 用JAVA 查询 Active Directory(AD)
- 用JAVA 查询 Active Directory(AD)
- java基础--基本数据类型