|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
- <?php
- /*
- * @最优整数均分算法
- * @param int $number 待平分的数字
- * @param int $taotl 平分总个数
- */
- function getDivideNumber($number, $total) {
- $divide_number = bcdiv($number, $total); // 除法取平均数
- $last_number = bcsub($number, $divide_number * $total); // 获取剩余
- $number_str = str_repeat($divide_number.'|', $total - $last_number); // 拼装平分后的数据
- $number_str2 = str_repeat(($divide_number + 1).'|', $last_number); // 拼装剩下的分配
- $number_str = $number_str2 . $number_str; // 组合
- return explode('|', trim($number_str, '|')); // 去掉前后多余的分隔符 返回数组
- }
- $arr = getDivideNumber(20, 8);
- print_r($arr);
复制代码 以上代码执行结果为:- Array
- (
- [0] => 3
- [1] => 3
- [2] => 3
- [3] => 3
- [4] => 2
- [5] => 2
- [6] => 2
- [7] => 2
- )
复制代码 PHP实现最近似的分配法
|
|