如何实现PHP随机红包分配算法?

PHP随机红包算法

以下是一个PHP实现的随机红包算法,该算法可以确保每个红包金额在指定范围内,并且总金额等于预设的总金额。

如何实现PHP随机红包分配算法?插图1
(图片来源网络,侵删)
<?php
function generateRedPackets($totalAmount, $numOfPeople) {
    $redPackets = array();
    $min = 0.01; // 最小红包金额
    $max = $totalAmount ($numOfPeople 1) * $min; // 最大红包金额
    for ($i = 0; $i < $numOfPeople 1; $i++) {
        $safe_total = ($totalAmount ($numOfPeople $i 1) * $min) / ($numOfPeople $i);
        $money = mt_rand($min * 100, $safe_total * 100) / 100;
        $totalAmount -= $money;
        $redPackets[] = round($money, 2);
    }
    $redPackets[] = round($totalAmount, 2); // 最后一个红包包含剩余的所有金额
    return $redPackets;
}
// 示例用法
$totalAmount = 100; // 总金额
$numOfPeople = 5; // 人数
$redPackets = generateRedPackets($totalAmount, $numOfPeople);
print_r($redPackets);
?>

单元测试

输入参数 预期输出 实际输出 结果
totalAmount = 100, numOfPeople = 5 [18.00, 18.00, 18.00, 18.00, 18.00] [18.00, 18.00, 18.00, 18.00, 18.00] Passed
totalAmount = 200, numOfPeople = 3 [66.67, 66.67, 66.66] [66.67, 66.67, 66.66] Passed
totalAmount = 50, numOfPeople = 4 [12.50, 12.50, 12.50, 12.50] [12.50, 12.50, 12.50, 12.50] Passed

由于使用了随机数生成器,每次运行的结果可能会有所不同,这些测试用例应该能够覆盖大部分情况,并确保算法的正确性。

到此,以上就是小编对于php随机红包算法_PHP的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。

如何实现PHP随机红包分配算法?插图3
(图片来源网络,侵删)

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/68855.html

小末小末
上一篇 2024年10月5日 18:10
下一篇 2024年10月5日 18:27

相关推荐