PHP中文网-QQ群-扫二维码

QQ群

PHP中文网-关注微信公众号-扫二维码

微信公众号

当前位置:php中文网下载站 >类库下载>其它类库 >中奖概率算法的php函数类

中奖概率算法的php函数类

2018-01-20 来源/作者:php中文网 «» 下载次数:220
类库简介:
<?php
function get_rand($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;
}

奖项数组是一个二维数组,记录了所有本次抽奖的奖项信息,其中id表示中奖等级,prize表示奖品,v表示中奖概率。注意其中的v必须为整数,你可以将对应的 奖项的v设置成0,即意味着该奖项抽中的几率是0,数组中v的总和(基数),基数越大越能体现概率的准确性。本例中v的总和为100,那么平板电脑对应的 中奖概率就是1%,如果v的总和是10000,那中奖概率就是万分之一了。$proArr是一个预先设置的数组,假设数组为:array(100,200,300,400),开始是从1,1000 这个概率范围内筛选第一个数是否在他的出现概率范围之内,如果不在,则将概率空间,也就是k的值减去刚刚的那个数字的概率空间,在本例当中就是减去100,也就是说第二个数是在1,900这个范围内筛选的。这样 筛选到最终,总会有一个数满足要求。就相当于去一个箱子里摸东西,第一个不是,第二个不是,第三个还不是,那最后一个一定是。这个算法简单,而且效率非常 高,关键是这个算法已在我们以前的项目中有应用,尤其是大数据量的项目中效率非常棒。



申明:PHP中文网下载站匠心打造中国最大的免费下载站!一切资源免费,所有资源都经过检测,请放心下载!

网友评论

文明上网理性发言,请遵守 新闻评论服务协议

22 条评论
..神经质
  • ..神经质· 2019-06-11 17:50:22
  • 谢谢分享谢谢分享 下载借鉴

  • +0回复
  • EricSun
  • EricSun· 2019-05-31 22:10:01
  • 谢谢作者分享

  • +0回复
  • 行元
  • 行元· 2019-05-30 10:30:20
  • 谢谢分享谢谢分享

  • +0回复
  • 永恒De国度
  • 永恒De国度· 2019-05-14 14:07:29
  • 仅仅需要收藏下!

  • +0回复
  • 明
  • · 2019-05-05 15:20:08
  • 不错,谢谢楼主了

  • +0回复
  • 心与境合
  • 心与境合· 2019-04-27 00:44:32
  • 很好很好很好

  • +0回复
  • root
  • root· 2019-04-22 10:57:09
  • 谢谢作者分享

  • +0回复
  • 鸿
  • 鸿· 2019-04-18 22:01:15
  • 好用,功能强大

  • +0回复
  • 追梦人
  • 追梦人· 2019-04-13 15:19:17
  • 谢谢作者分享!!!!!

  • +0回复
  • 八皇子殿下
  • 八皇子殿下· 2019-04-12 13:54:42
  • 还没看,就让评价,呵呵

  • +0回复
  • 孙联庆
  • 孙联庆· 2019-04-10 14:21:42
  • 可以,还不错

  • +0回复
  • ~~~
  • ~~~· 2019-04-08 17:44:18
  • 萨达感谢分享测试是

  • +0回复
  • 清晰的声音
  • 清晰的声音· 2019-04-04 17:39:52
  • 谢谢作者分享

  • +0回复
  • phpcn_u35813
  • phpcn_u35813· 2019-04-02 16:24:40
  • 谢谢分享谢谢分享

  • +0回复
  • 王坤
  • 王坤· 2019-03-27 13:58:13
  • 谢谢PHP中文网

  • +0回复
  • 首页上一页12下一页尾页