随机红包

function hongbao($money, $people, $min, $max)
{
    $result = [];
    for ($i=0; $i < $people; $i++) { 
        do {
            // 1.进行本次分配
            $result[$i] = mt_rand($min*100, $max*100) / 100; 
            // 2.本次分配后,剩余人数
            $restPeople = $people - ($i+1);    
            // 3.本次分配后,剩余金钱
            $restMoney  = $money - array_sum(array_slice($result, 0, $i+1)); 
            // 4.本次分配后,剩余金钱是否在合理范围? 不在则重新分配
        } while ($restMoney > $restPeople * $max || $restMoney < $restPeople * $min);
    }
    return $result;
}

$result = hongbao(10,4, 2, 3);
// 验证
var_dump($result);
var_dump(array_sum($result));
输出结果:

猜你喜欢

转载自blog.csdn.net/chris_zqw/article/details/81035334
今日推荐