php摇奖程序
2012-12-27 14:45
197 查看
//安中奖概率由小到大排好了序 //id:奖项id用于做甘某些数据的关联时用,prize为奖品名称,v为中奖概率,prize_id为中奖id,num为奖品的剩余量:-1代表不限制,0表示奖品已经没了 $prize_arr = array( '0' => array('id'=>1,'prize'=>'平板电脑','v'=>100,'num'=>0,'prize_id'=>0), '1' => array('id'=>2,'prize'=>'数码相机','v'=>500,'num'=>10,'prize_id'=>0), '2' => array('id'=>3,'prize'=>'音箱设备','v'=>1000,'num'=>100,'prize_id'=>0), '3' => array('id'=>4,'prize'=>'4G优盘','v'=>1200,'num'=>1000,'prize_id'=>0), '4' => array('id'=>5,'prize'=>'10Q币','v'=>2200,'num'=>-1,'prize_id'=>0), '5' => array('id'=>6,'prize'=>'下次没准就能中哦','v'=>5000,'num'=>-1,'prize_id'=>0), ); //摇奖方法一: $res = get_rand($prize_arr); //根据概率获取奖项id //根据概率获取奖项id //摇奖方法二(推荐): $prize = get_rand2($prize_arr); function get_rand($prize_arr) { $proArr = array(); foreach ($prize_arr as $key => $val) { $proArr[$key] = $val['v']; } $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 $prize_arr[$result]; } function get_rand2($prize_arr) { $proSum = 0;//概率基数 $result = ''; //添加prize_id $prize_id = 0; foreach($prize_arr as $key=>&$val){ if($val['num']!=0){ $proSum += $val['v']; $prize_id += $val['v']; $val['prize_id'] = $prize_id; }else{ $val['prize_id'] = 0; } } unset($key,$val); $prize_id = rand(1,$proSum);//摇中的奖品id foreach($prize_arr as $key=>$val){ if($prize_id<=$val['prize_id']){ $result = $val; print_r($result); break; } } return $result; }
相关文章推荐
- php中获取中文首字母程序代码
- 安装PHP集成环境WAMPServer时报错“无法启动此程序,因为计算机中丢失MSVCR110.dll”
- 国内php的blog程序推荐
- 刚刚测试的php生成静态页程序(实例)
- PHP+Mysql+jQuery实现发布微博程序--jQuery篇
- 15种PHP 加密程序(PHP Encoder)的比较
- PHP程序开发中的中文编码问题
- PHP用set_error_handler()拦截程序中的错误
- 保证JavaScript和Asp、Php等后端程序间传值编码统一
- CI中使用log4php调试程序
- PHP程序的原子性和PHP的文件锁
- PHP编程中尝试程序并发的几种方式总结
- 微信小程序解密encryptedData数据字符串,php中隐形字符65279(utf-8的BOM头)问题
- 无数据库的详细域名查询程序PHP版(5)
- php利用openssl生成签名实例程序
- PHP程序输入输出流
- PHP笔记——java程序员看懂PHP程序
- [zt]PEAR简介:用pear来写你的下一个php程序
- php写的发送附件的程序(一)
- android 上传文件用php程序在服务端接受(一)