PHP实现发红包简单算法

微信、支付宝发红包在过年过节的时候非常火…这里用php简单模仿了下。简单算法,仅供参考!

实际应用中,可以把红包结果放入一个数组中,或存入数据库,再以json数组方式打给前端,代码如下:

<?php
$total = 50;    //红包总金额
$num = 20;    //分发给20个人
$min = 0.01;    //每个人最少得0.01元
//获取一个随机整数
function getIntNum($min,$max){
    return round(mt_rand($min*100,$max*100),2)/100;
}

for ($i=1;$i<$num;$i++){
    $safe_total = ($total-($num-$i)*$min);    //随机安全上限
    $safe_total = $safe_total/getIntNum(1,$num-$i);    //公正随机处理(更好的算法可以放到这里处理)
    $money = getIntNum($min,$safe_total);
    $total = round($total-$money,2);
    echo '第'.$i.'个红包:'.$money.' 元,余额:'.$total.' 元 <br/>';
}

echo '第'.$num.'个红包:'.$total.' 元,余额:0 元';

部分代码来源于网络搜集整理,有删改

Author: thinkwei

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注