PHP语言实现大转盘抽奖算法
小标 2018-07-23 来源 : 阅读 1461 评论 0

摘要:本文主要向大家介绍了PHP语言实现大转盘抽奖算法,通过具体的实例向大家展示,希望对大家学习php语言有所帮助。

本文主要向大家介绍了PHP语言实现大转盘抽奖算法,通过具体的实例向大家展示,希望对大家学习php语言有所帮助。

流程:

1.拼装奖项数组,2.计算概率,3.返回中奖情况

代码如下:中奖概率 ' v ' 可以在后台设置,传到此方法中,注意传整数

 

function get_gift(){  

        //拼装奖项数组

        // 奖项id,奖品,概率

        $prize_arr = array(   

          '0' => array('id'=>1,'prize'=>'平板电脑','v'=>0),   

          '1' => array('id'=>2,'prize'=>'数码相机','v'=>0),   

          '2' => array('id'=>3,'prize'=>'音箱设备','v'=>0),   

          '3' => array('id'=>4,'prize'=>'4G优盘','v'=>5),   

          '4' => array('id'=>5,'prize'=>'10Q币','v'=>0),   

          '5' => array('id'=>6,'prize'=>'空奖','v'=>5),   

        );   

        foreach ($prize_arr as $key => $val) {   

          $arr[$val['id']] = $val['v'];//概率数组           }    

        $rid = $this->get_rand($arr); //根据概率获取奖项id   

        $res['yes'] = $prize_arr[$rid-1]['prize']; //中奖项   

        unset($prize_arr[$rid-1]); //将中奖项从数组中剔除,剩下未中奖项   

        shuffle($prize_arr); //打乱数组顺序   

        for($i=0;$i<count($prize_arr);$i++){   

          $pr[] = $prize_arr[$i]['prize'];  //未中奖项数组         }   

        $res['no'] = $pr;

        // var_dump($res);

 

          

        if($res['yes']!='空奖'){  

            $result['status']=1;  

            $result['name']=$res['yes'];  

        }else{  

            $result['status']=-1;  

            $result['msg']=$res['yes'];  

        }   

        //return $result;  

        var_dump($result);

    }  

 

    //计算中奖概率

    function get_rand($proArr) {   

      $result = '';   

      //概率数组的总概率精度   

      $proSum = array_sum($proArr);   

      // var_dump($proSum);

      //概率数组循环   

      foreach ($proArr as $key => $proCur) {   

        $randNum = mt_rand(1, $proSum);  //返回随机整数

 

        if ($randNum <= $proCur) {   

          $result = $key;   

          break;   

        } else {   

          $proSum -= $proCur;   

        }   

      }   

      unset ($proArr);   

      return $result;   

    }

 

本文由职坐标整理并发布,了解更多内容,请关注职坐标编程语言PHP频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程