我有一组 18 个值(它总是 18 个),我需要将它们分成两组,一组 10 个,一组 8 个。

分配规则是每组的值必须等于(或尽可能接近)特定的已知值 - 因此在第一组中,值的总和必须尽可能接近 1500000,而在第二组中值的总和必须尽可能接近 1000000。

什么是最好的(这可能意味着最简单的)算法来做到这一点?

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

最佳答案

只有 43758 个这样的选择。遍历它们中的每一个并找到最好的。

关于algorithm - 如何将一组值分成两组固定大小,使它们的总和接近特定值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3151510/

10-13 07:35