如何将一组值分成两组固定大小,使其总和接近特定值

Bee*_*and 3 language-agnostic algorithm

我有一组18个值(它总是18个)我需要分配到两个集合中,一个是10个项目,另一个是8个项目.

分配规则是每个集合的值必须与特定的已知值相等(或尽可能接近) - 因此在第一个集合中,值的总和必须尽可能接近1500000,在第二个集合中值的总和必须尽可能接近1000000.

这样做的最佳(也可能是最简单的)算法是什么?

进一步说明,这些值的范围都在110000到200000之间.这些值总是100的倍数,都是正整数,可能有重复.

Pet*_*ham 5

只有43758这样的选择.仔细检查每一个并找到最好的.