Я ищу ответ на следующую проблему.Найти все комбинации заданного набора целых чисел, суммирующихся до заданной суммы
Учитывая набор целых чисел (без дубликатов) и сумму, найдите все возможные комбинации элементов набора, суммирующихся до суммы. Порядок решений не имеет значения (решения {2, 2, 3} и {3, 2, 2} равны).
Обратите внимание, что конечная комбинация не обязательно должна быть набором, так как она может содержать дубликаты.
Пример: Набор {2,3,5} Сумма 10
Результат: {2, 2, 2, 2, 2}, {2, 2, 3, 3}, {2, 3, 5}, {5, 5}
Я рассмотрел проблему Subset Sum, а также проблему изменения монет, но не смог ее адаптировать в соответствии с моими потребностями. Я не очень хорошо знаком с динамическим программированием, поэтому, вероятно, это возможно, но я не мог понять.
Поскольку я имею дело с довольно большим набором элементов (около 50), предварительная вычисление всех наборов не является вариантом, так как это займет очень много времени. Предпочтительным способом (если это возможно) было бы предпочтительнее вытащить различные решения из таблицы подмножества.
Любые советы, советы или образцы кода будут оценены!
Возможный дубликат [значения массива сумм с суммой равно X] (http: // stackoverflow.com/questions/595707/sum-array-values-with-sum-equals-x) – TiMr
@TiMr Извините, но этот ответ не то, что я ищу. Там каждый результат - это набор (без дубликатов), однако я ищу способ найти все решения, в том числе с несколькими встречами одного и того же элемента, как в приведенном выше примере. – Dzik
Не совсем отличается от подмножества (он позволяет наборы или мультимножества) или неограниченный рюкзак. –