平均分钱算法。
设置4个人分配,用字母代替人名作比喻如下。
A:上限是10(这个数字随意设置).
B:上限是20
C:上限是30
D:上限是10
如果平均把50元平均分效果是: A:10, B:20, C:10, D:10
如果平均把100元平均分效果是:A:10, B:20, C:30, D:10 剩下30不做记录
如果平均把60元平均分效果是: A:10, B:20, C:20, D:10 是否比较好的计算方法。小弟在此感谢大家
设置4个人分配,用字母代替人名作比喻如下。
A:上限是10(这个数字随意设置).
B:上限是20
C:上限是30
D:上限是10
如果平均把50元平均分效果是: A:10, B:20, C:10, D:10
如果平均把100元平均分效果是:A:10, B:20, C:30, D:10 剩下30不做记录
如果平均把60元平均分效果是: A:10, B:20, C:20, D:10 是否比较好的计算方法。小弟在此感谢大家
<?php
$total = 60;
$max = array(10,20,30,10);
$arr = array(0,0,0,0);
$i = 0;
var_dump($total);
while ($total>0 && array_sum($arr)<array_sum($max)) {
$n = $total>10?10:$total;
$n = ($max[$i]-$arr[$i])>$n?$n:($max[$i]-$arr[$i]);
$arr[$i] += $n;
$total -= $n;
$i++;
if ($i==count($max)) $i = 0;
}
var_dump($max,$arr,$total);
?>
</pre>