码迷,mamicode.com
首页 > 其他好文 > 详细

概率中奖

时间:2017-02-23 11:13:48      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:res   var   rand   and   返回   function   esc   ram   else   

<?php
    /**
     * [gailv description]
     * @param array $data
     * @return int $result 正确返回中奖ID 错误就返回0
     */
    function probability($data)
    {
        if (!is_array($data) || empty($data)) {
            return 0;
        }

        $result = 0;

        //概率和
        $probabilitySum = array_sum($data);

        foreach ($data as $key => $value) {
            $rand = mt_rand(1, $probabilitySum);
            if ($rand <= $value) {
                $result = $key;
            }else{
                $probabilitySum -= $value;
            }
        }

        return $result;
    }

    $data = array(
        1 => 10,
        2 => 30,
        3 => 40,
        4 => 90,
        10 => 100
    );

    var_dump(probability($data));


    

 

概率中奖

标签:res   var   rand   and   返回   function   esc   ram   else   

原文地址:http://www.cnblogs.com/yuwensong/p/6432262.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!