美文网首页
大转盘抽奖概率算法

大转盘抽奖概率算法

作者: 追随_1064 | 来源:发表于2019-02-03 14:30 被阅读0次

    大转盘方式的抽奖是经常见的,,最近在做了一个抽奖的功能,其中最重要的就是概率,概率的算法大同小异,,为保证每个奖品都可抽完,下面就是我写一个算法

    function getRand(array $products,$flage){

    //1、计算总中奖概率

    $chanceSum = array_sum($arr);//所有奖品的概率总和,

    //2、计算每个奖品的中奖率

    foreach($prducts as $value){

    if($value['chance']<=0)//概率值小于等于0。返回false表示未中奖

    {

    continue;

    }else{

    $randNum = mt_rand(1,$chanceSum );//随机抽取

    if($randNum <=$value['chance']){ //循环获取到的概率小于等于随机抽取到的概率表示中奖

    return $value;

    }else{//此时概率发生变化(其中某个奖品的库存为0时,总的概率减去奖品为0的概率)

    if($flag){

    $chanceSum - = $value['chance'];

    }

    }

    }

    }

    return false;

    }

    相关文章

      网友评论

          本文标题:大转盘抽奖概率算法

          本文链接:https://www.haomeiwen.com/subject/ahvysqtx.html