/**
 * 二倍均值法
 *
 * @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 条评论