按照概率得到数组下标

2020-07-27  本文已影响0人  Alex80

$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;

    }

上一篇 下一篇

猜你喜欢

热点阅读