• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php中奖概率算法,可用于刮刮卡,大转盘_php

php 搞代码 3年前 (2018-06-21) 136次浏览 已收录 0个评论

php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法。用法很简单,代码里有详细注释说明,一看就懂

 $proCur) {          $randNum = mt_rand(1, $proSum);          if ($randNum <= $proCur) {              $result = $key;              break;          } else {              $proSum -= $proCur;          }        }      unset ($proArr);       return $result;  }    /*  * 奖项数组  * 是一个二维数组,记录了所有本次抽奖的奖项信息,  * 其中id表示中奖等级,prize表示奖品,v表示中奖概率。  * 注意其中的v必须为整数,你可以将对应的 奖项的v设置成0,即意味着该奖项抽中的几率是0,  * 数组中v的总和(基数),基数越大越能体现概率的准确性。  * 本例中v的总和为100,那么平板电脑对应的 中奖概率就是1%,  * 如果v的总和是10000,那中奖概率就是万分之一了。  *   */ $prize_arr = array(      '0' => array('id'=>1,'prize'=>'平板电脑','v'=>1),      '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'=>'10Q币','v'=>22),      '5' => array('id'=>6,'prize'=>'下次没准就能中哦','v'=>50),  );   /*  * 每次前端页面的请求,PHP循环奖项设置数组,  * 通过概率计算函数get_rand获取抽中的奖项id。  * 将中奖奖品保存在数组$res['yes']中,  * 而剩下的未中奖的信息保存在$res['no']中,  * 最后输出json个数数据给前端页面。  */ foreach ($prize_arr as $key => $val) {      $arr[$val['id']] = $val['v'];  }  $rid = get_rand($arr); //根据概率获取奖项id   $res['yes'] = $prize_arr[$rid-1]['prize']; //中奖项  unset($prize_arr[$rid-1]); //将中奖项从数组中剔除,剩下未中奖项  shuffle($prize_arr); //打乱数组顺序  for($i=0;$i

欢迎大家阅读php中奖概率算法,可用于刮刮卡,大转盘_php》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址