Имеется массивчик, чисел так на 500. Задача: отобрать из оного несколько (лучше меньше) чисел так, чтобы их сумма минимально отличалась от некоего заданного числа. Имеется допустимая погрешность: если сумма в рамках оной, то ОК. Из всех сумм "в рамках оной" нужно выбрать ту, у которой число слагаемых меньше.
Спрашивается, как лучше подойти к решению такой задачи? Наглый перебор (сначала для двух слагаемых, потом для трёх...) кажется слишком неоптимальным. Рекурсия - как посмотрю на количество комбинаций (ну, из 500 по 8, к примеру), так сразу начинаю сильно сомневаться в том, что стек выдержит.
Ну и вообще, время выполнения будет ли реальным?
Что скажете?