/**
* 二倍均值法
*
* @param $nums //分配人数
* @param $money //分配金额
* @return array
*/
function assignRedBag($nums,$money){
$result = [];//分配结果
$surplusMoney = $money;//剩余金额
for ($i=0;$i<$nums;$i++){
//最后一次分配,直接返回剩余金额
if($i+1 == $nums){
$result[] = $surplusMoney;
break;
}
//每次分配的最大值,剩余金额 / 剩余分配人数 * 2倍
$max = intval($surplusMoney / ($nums - $i) * 2);
//随机分配
$nowMoney = mt_rand(1,$max);
//存入分配结果
$result[] = $nowMoney;
//计算剩余money
$surplusMoney = $surplusMoney - $nowMoney;
}
return $result;
}
echo '<pre>';
print_r(assignRedBag1(10,100));
action
本站未注明转载的文章均为原创,并采用
CC BY-NC-SA 4.0授权协议,
转载请注明来源,谢谢!如本站内容对你有所帮助的话,欢迎订阅关注
邢栋博客,唠嗑(分享)每日的折腾经历。
已有 0 条评论