php红包算法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | /** * @param $num * @param $total * @param int $range 差距是否大 * @return array|int */ private function randomSplit($num,$total,$range=1){ if($num<2){ return $total; } $div=array(); $min=floor($total/$num-$range); $max=floor($total/$num+$range); for($i=0;$i<$num-1;$i++){ $depart=mt_rand($min,$max); $div[]=$depart; $total-=$depart; } $div[]=$total; return $div; } |

浙公网安备 33010602011771号