我想将一个数字分成n个部分,如下所示
输入:$ n = 4; $ m = 14; 输出应为:array(1 => 4,2 => 4,3 => 3,4 => 3);
即:
$n $m
1 1+1+1+1
2 1+1+1+1
3 1+1+1
4 1+1+1
任何建议或链接都会有很大帮助。
答案 0 :(得分:0)
这是一种方法 - 这适用于phpfiddle:
$n = 4;
$m =14;
$array = distribute($m,$n);
print_r($array);
function distribute($m,$n) {
$div = floor($m / $n);
$mod = fmod($m, $n);
$result = array();
for ($i = 1;$i <= $n;$i++) {
$result[$i] = $div;
}
if ($mod > 0) {
for ($i = 1;$i <= $mod;$i++) {
$result[$i] = $result[$i] + 1;
}
}
return $result;
}