У меня есть массив с 2 <= n <= 100
doubles:
A = [a1, a2, ... , an], ai > 0
и целое число 2 <= k <= min(n, 20)
. Мне нужно разделить A
на k
подмассивы:
B1 = [a1, a2, ... , ap]
B2 = [ap+1, ap+2, ... , aq]
...
Bk = [aw+1, aw+2, ... , an]
такой, что сумма в каждом B
равна почти равна (трудно дать строгое определение, что это значит - меня интересует приблизительное решение).
Пример:
Input: A = [1, 2, 1, 2, 1], k=2
Output: [[1, 2, 1], [2, 1]] or [[1, 2], [1, 2, 1]]
Я попробовал вероятностный подход:
выборка из [1, 2, .., n]
с использованием A
в качестве весов вероятности
разрезать образец на квантили, чтобы найти хорошее разбиение,
но это было недостаточно стабильно для производства.
tl; dr Этот вопрос задает вопрос о делении на 2 части. Мне нужно k
-частное деление.