Как разбить массив на два подмножества и сохранить сумму подмножеств массива как можно более равной
Мне действительно нужен мастер алгоритма здесь! Дело в том, что я получил, например, такой массив:
[
[870, 23]
[970, 78]
[110, 50]
]
и я хочу разделить это так, чтобы это выглядело так:
// first array
[
[970, 78]
]
// second array
[
[870, 23]
[110, 50]
]
так что теперь, почему я хочу, чтобы это тоже выглядело так?
Потому что я хочу, чтобы сумма значений была максимально возможной. Так970
около870 + 110
а также78
около23 + 50
, Так что в этом случае этоЭто очень просто, потому что если вы просто разделите их и посмотрите только на первое подзначение, это уже будет правильно, но я хочу проверить оба и сохранить их как можно более равными, чтобыЯ также буду работать с массивом, который получил 100 под-массивов! Так что, если кто-нибудь может сказать мне алгоритм, с помощью которого я могу запрограммировать это, это было бы действительно здорово!
Напольные весы:
~ 1000 элементов (подсписков) в массивеЭлементы целые до 10 ^ 9Я ищу "достаточно близкое решение "-это не должно быть точным оптимальным решением.