php红包算法函数
<?phpheader("Content-Type: text/html;charset=utf-8");$total=10000;$num=10;$min=10;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); 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);}?>