У меня есть набор уникальных чисел и хотел бы разбить эти числа на разделы K
, чтобы сумма чисел в каждом разделе почти равнялась.
Предположим, что у меня есть следующий набор.
{1, 2, 3, 4, 5, 6, 7, 8, 9}
Использование Алгоритм линейного разбиения Я получаю следующие разделы, когда K = 3
{ 1 2 3 4 5 }
{ 6 7 }
{ 8 9 }
Ожидается, что, поскольку это алгоритм линейного разбиения, любое изменение в порядке ввода набора будет также изменять разделы, чего я хочу избежать.
Разность суммы элементов для каждого раздела должна быть минимизирована. В приведенном выше примере суммой каждого раздела является 15
, 13
, 17
для следующего ввода он не работает.
{10, 20, 90, 100, 200}
Алгоритм линейного разбиения дает мне следующий
{ 10 20 90 100 }
{ 200 }
Но правильный ответ должен быть
{ 10, 200 }
{ 20, 90, 100 }