我有一个非负值的数组。我想要构建一个总和为20的值数组,以便它们与第一个数组成比例。分配一个整数数组,按比例补偿舍入误差
这将是一个简单的问题,除了我希望比例数组总和恰好为 20,补偿任何舍入误差。
例如,阵列
input = [400, 400, 0, 0, 100, 50, 50]
将产生
output = [8, 8, 0, 0, 2, 1, 1]
sum(output) = 20
然而,大多数情况下,将有大量的舍入误差,像
input = [3, 3, 3, 3, 3, 3, 18]
天真地产生
output = [1, 1, 1, 1, 1, 1, 10]
sum(output) = 16 (ouch)
有没有一种很好的方法来分配输出数组,使它每次累加20次?
不明白这个问题......你是什么意思的“比例数组” – Magnus 2013-04-26 00:45:36
为什么使用整型,而不仅仅是使用浮点型? – 2013-04-26 00:46:09
@Magnus数组的值总和为20,并与第一个数组中的值成比例。可能有更好的方式来表达它。 – Rob 2013-04-26 00:47:27