> 文档中心 > php红包算法函数

php红包算法函数


php红包算法函数

<?phpheader("Content-Type: text/html;charset=utf-8");//输出不乱码,你懂的  $total=10000;//红包总额  $num=10;// 分成8个红包,支持8人随机领取  $min=10;//每个人最少能收到0.01元echo '
';$redarr=array();for ($i=1;$i<=$num;$i++)  {      $red=getredmoney($i,$total,$num,$min);    $total=$total-$red['money'];    echo '第'.$i.'个红包:'.$red['money'].' 元,余额:'.$red['total'].' 元 
'
; $redarr[]=$red['money'];}echo '总金额:'.array_sum($redarr); /** * 获取红包 * @param $i 第几个人 * @param $total 剩余总红包金额 * @param $num 总人数 * @param $min 最小获得金额 * @param $point 保留小数位数 */function getredmoney($i,$total,$num=10,$min=1,$point=0){ if($i==$num){ $money=$total; }else{ $pre=$total/($num-$i+1); if($pre==$min){ $money=$min; }else if($pre<$min || ($pre-$min)<1){ $safe_total=$total-($num-$i)*$min;//随机安全上限 $money=@mt_rand($min*100,$safe_total*100)/100; }else{ $safe_total=($total-($num-$i)*$min)/($num-$i);//随机安全上限 $money=@mt_rand($min*100,$safe_total*100)/100; if($money<$min)$money=$min; } $money=round($money,$point); } $total=$total-$money; return array('i'=>$i,'money'=>$money,'total'=>$total);}?>