Обработка находит все возможные варианты состава слагаемых из списка для получения суммы поиска.
Необходимо заполнить левую табличную часть на форме предполагаемыми слагаемыми (возможна загрузка из Excel - первый лист, первая колонка с первой ячейки) и ввести сумму для поиска. Выбрать ограничение по количеству слагаемых в итоговом выражении.
По окончании выполнения обработки в правом поле на форме будут отображены все варианты состава слагаемых по номеру строки в левой табличной части.
Внимание! Чем больше вариантов слагаемых в левом списке, тем дольше выполняется обработка. НО больше всего время выполнения обработки зависит от выставленного предельного количества слагаемых. К этому параметру следует относится серьезно, ибо автор не отвечает за последствия загрузки процессора и оперативной памяти вашего компьютера.
На самом деле все не так страшно. Многое зависит от целей вашего поиска. Например у вас есть список из 20 значений от 1000 до 1500, а найти вам нужно варианты состава например 6500. Понятно, что вариантов тут будет очень много. А если Вы еще зададите ограничение в 15 слагаемых (что не целесообразно - начинать лучше с 3-4), то ждать придется ооочень долго.
Старался делать так, чтобы память загружалась по-минимуму... но время выполнения от этого увеличено. Метод поиска вариантов - обычный перебор. Поэтому возможных вариантов, хранимых в памяти... многова-то.
В общем... эта обработка писалась на коленке для поиска трех слагаемых... потом была расширена... если найдете способ увеличить производительность, или придумаете (найдете) что-то проще и удобнее... рад буду услышать :) Также рад буду слышать критику в области написания кода касательно производительности обработки. Ну а если найдете ошибку - скрин в студию. Повторюсь - дело было написано на коленке за отсутствием найденных аналогов в сети.
За плюсы и минусы благодарен заранее :)
*обновил 09.04.12. Увеличена скорость и уменьшена задействованная память