我有一组 18 个值(它总是 18 个),我需要将它们分成两组,一组 10 个,一组 8 个。
分配规则是每组的值必须等于(或尽可能接近)特定的已知值 - 因此在第一组中,值的总和必须尽可能接近 1500000,而在第二组中值的总和必须尽可能接近 1000000。
什么是最好的(这可能意味着最简单的)算法来做到这一点?
进一步说明,这些值的范围都在 110000 到 200000 之间。这些值总是 100 的倍数并且都是正整数,并且可以有重复。
最佳答案
只有 43758 个这样的选择。遍历它们中的每一个并找到最好的。
关于algorithm - 如何将一组值分成两组固定大小,使它们的总和接近特定值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3151510/