您当前的位置: 首页 > 网站编程 > PHP教程 > php中奖概率算法与大转盘等抽奖算法

php中奖概率算法与大转盘等抽奖算法

作者:不详 来源:网络 发布时间: 2014-07-31 09:51 点击:
php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法。用法很简单,代码里有详细注释说明,一看就懂 $proCur) { $randNum = mt_rand(1, $proSum); if ($randNum = $proCur) { $result = $key; break; } else { $proSum -= $proCur; } } unset ($proArr); return $result;

php中奖概率算法与大转盘等抽奖算法

  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中奖概率算法与大转盘等抽奖算法"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4