以贪婪的方式分配给定的数字

Distribute given number in a greedy manner

我在想出这个简单问题的方程式时碰壁了。我需要从不同的角度提出算法。我有一个数字x,我想以贪婪的方式将它分配给n个元素。

For x=9, n=3
[1,2,3],[4,5,6],[7,8,9] OR [3,3,3]
For x=10, n=3
[1,2,3,4],[5,6,7],[8,9,10] OR [4,3,3]
For x=11, n=3
[1,2,3,4],[5,6,7,8],[9,10,11] OR [4,4,3]
For x=12, n=3
[1,2,3,4],[5,6,7,8],[9,10,11,12] OR [4,4,4]

据我了解,您需要获得像 [4,4,3] 这样的数组。所以使用整数除法和模运算

smallvalue = x / n ;  //integer division
largecount = x % n;   //number of larger values
smallcount = n - largecount

现在用 largecount 数量 smallvalue+1 填充数组,然后用 smallcount 数量 smallvalue

如果您需要结果 [1,2,3,4],[5,6,7,8],[9,10,11] - 使用相同的信息生成它。