按照概率得到数组下标

$proArr = [

        1=>'20',//设置得到下标1的概率是20%

        2=>'20',

        3=>'20',

        4=>'0',

        5=>'20',

        6=>'20',

        7=>'0',

        8=>'0',

        9=>'0',

        10=>'0',

    ];

    public static 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;

    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。