У меня есть набор из N для N> 3 различных целых чисел, и проблема заключается в том, чтобы найти все различные суммы 3-подмножеств заданного множества. 3-подмножество - это подмножество, мощность которого равна 3.Число различных сумм подмножеств
Я знаю, что тупой способ - выполнить кубический поиск по всем возможным суммам, а затем разобрать все дубликаты. Есть ли более эффективный способ сделать это? Я программирую в C.
EDIT: Я хотел знать более общий алгоритм, если бы количество элементов было увеличено.
Если у вас всего 8 целых чисел, кубический поиск будет очень быстрым. Зачем вам нужно что-то лучше для стольких элементов? – IVlad
@IVlad. Я хотел знать общее решение, если бы что-то было быстрее. –
Не обман, а связанный: [Сумма подмножества с фиксированным размером подмножества] (http://stackoverflow.com/q/8916539/572670). Обратите внимание, что поиск всех подмножеств суммы нефиксированного размера - NP-Complete [Исправление: NP-Hard]. – amit