如何使用整个值在整个数组中均匀分布值

时间:2016-05-23 11:41:32

标签: arrays integer distribution percentage

给定任何整数值,我希望能够在非负整数数组中均匀分布值,使每个数组单元相对于其当前值增加一个数量。

一个简单的例子如下:

  

输入:3(2, 4)

     

输出:(3, 6)

输出为(3, 6),因为第二个数组值是第一个数组的两倍,因此它的分布(2)的值是第一个数组值的两倍({{1} }})。

另一个更复杂的例子:

  

输入:19

     

输出:(4, 2, 5)

在此示例中,值不均匀分布。相反,必须对每个阵列单元进行加权以确定整个阵列的百分比。当值转换为百分比时,可以创建一个姐妹数组:

  

(7, 3, 10)

一旦发现百分比,就可以确定原始数字的每个百分比应该如此分配。问题是只能分发整数部分,因此不会将(36.36%, 18.18%, 45.45%)添加到第一个数组值,只能添加3.24,依此类推。第三个数组值获得该值的最大份额(3而不是5,从4 45.45%舍入 up 的原因{ {1}})因为它具有最高百分比的数组值。

我的问题是:当给定一个整数数组和另一个整数值时,什么函数返回这样一个转换后的整数数组,以尽可能均匀地分配到它们中?

注意:如果我的答案在第二个示例中没有关闭,请提供除了提供不同输出的函数之外的原因的证明就足以得到足够的答案。

0 个答案:

没有答案