5个人平分50元红包,每个人5-15元,如何平均分配?

本文提供PHP代码实现5个人分配50元红包,每个人能领取5-15元红包的算法,并力求平均分配,确保每个人的红包金额尽可能接近。

// 初始化红包金额和人数
$amount = 50;
$count = 5;

// 计算每个人的最小和最大红包金额
$min = 5;
$max = 15;

// 计算每个人的平均红包金额
$avg = $amount / $count;

// 初始化每个人的红包金额
$redbag = array_fill(0, $count, 0);

// 分配红包金额
for ($i = 0; $i < $count; $i++) {
    // 计算当前人的最大红包金额
    $max_redbag = min($max, $amount - ($count - $i - 1) * $min);

    // 随机分配当前人的红包金额
    $redbag[$i] = mt_rand($min * 100, $max_redbag * 100) / 100;

    // 更新红包总金额
    $amount -= $redbag[$i];
}

// 输出每个人的红包金额
for ($i = 0; $i < $count; $i++) {
    echo '第 ' . ($i + 1) . ' 个人的红包金额为:' . number_format($redbag[$i], 2) . ' 元
';
}

该代码实现的功能如下:

  1. 初始化红包金额和人数;
  2. 计算每个人的最小和最大红包金额;
  3. 计算每个人的平均红包金额;
  4. 循环分配每个人的红包金额,确保每个人的红包金额都落在最小和最大值之间,并尽可能接近平均值;
  5. 输出每个人的红包金额。

该代码可以使用户更方便地进行红包分配,确保每个人的红包金额尽可能接近,避免出现“抢红包”时有些人拿到太多,有些人拿到太少的情况。

5个人平分50元红包,每个人5-15元,如何平均分配?

原文地址: https://www.cveoy.top/t/topic/n9zB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录