PHP实现简易微信红包算法
<?php /** * PHP实现简易的微信红包算法 * @version v1.0 * @author quetiezheng */ function getMoney($total, $people){ if($people <= 0){ return []; } $people = intval($people); $total = floatval($total); // 每个红包的最小值是0.01 $min = 0.01; $aRes = []; for($i = 1; $i < $people; $i ++){ // 每个红包的最大值。 剩余人最少每个0.01 $maxtmp = ($total - ($people -1) * $min) / ($people - $i); $randtmp = (float)((rand($min * 100, $maxtmp *100)) / 100); echo '第'.$i.'个红包:'.$randtmp.PHP_EOL; $total = $total - $randtmp; $aRes[$i] = $randtmp; } // 再给最后一个人赋值 echo '第'.$people.'个红包:'.$total.PHP_EOL; $aRes[$people] = $total; echo '红包总额:'. array_sum($aRes).PHP_EOL; return $aRes; }
-----又进步一点点