根据人数随机分配百分比的问题
程序员文章站
2022-05-22 18:31:10
...
需求是这样的,根据可变参数 $people 来给每个人随机分配百分比,条件是人数一定会控制在 3
写了个简单的分配,但会出现最后一个人会得到很多的情况,并且由于分配区间实际上是 1 - 平均数 之间的百分比,不是严格意义上的 “随机平均分配”,求各位大大给个思路,抛砖引玉,不甚感谢。
写了个简单的分配,但会出现最后一个人会得到很多的情况,并且由于分配区间实际上是 1 - 平均数 之间的百分比,不是严格意义上的 “随机平均分配”,求各位大大给个思路,抛砖引玉,不甚感谢。
$people = 3; //人数 $percent = 100; //百分比 $average = floor($percent/$people); $rand_array = array(); $count = 0; for ($i=0; $i
回复讨论(解决方案)
这样可能好点
$people = 3; //人数$percent = 100; //百分比$res = array_fill(0, 3, floor($percent/$people)); //平均分配$d = 5; //容差foreach($res as &$v) $v += rand(-$d, $d);$res[rand(0, $people-1)] += $percent - array_sum($res); //随机将残差补入print_r($res);忘记上来结贴了,感谢版主大大的回复,问题已经解决了,贴出来与大家分享:
public static function rand_bouns($person){ //百分比 $percent = 100; $now_person = $person; $bouns = array(); for($i=0;$i