#0
by 1cnik2
Иногда сталкиваюсь с задачей определить, из каких документов состоит определенная сумма. Задача в том, чтобы из конечного множества чисел выбрать подмножество их, в сумме равное нужному числу. Както давно нашел алгоритм в старой книжечке по программированию, буквально из 15 строчек, но реализация потерялась( Кто-нибудь делал такое? Поделитесь, если есть..
#2
by НачинающийПрограммер
Первое, что тна ум приходит что-то в этом роде: (S - искомая сумма, i - элементы сумм). Для i=1 по КоличествоЭлементов Цикл T = i1 + i(следующее); Если S = T Тогда Записываем составные части Т куда-нить в таблицу; КонецЕсли; КонецЦикла; Потом этот же цикл, но начать с i2.
#7
by 3nt
тока алгоритм Жадный алгоритм имеет сложность O(n log(n)), и гарантирует нахождение решения, не хуже чем в два раза от оптимального. Алгоритмы динамического программирования для задачи о рюкзаке дают точное решение за время O(nf*) или O(nB). Если величины f* и B не ограничена сверху никаким полиномом (то есть имеются большие коэффициенты), то эти псевдополиномиальные алгоритмы не является полиномиальными И еще тебе потребуются ВСЕ документы то есть с ростом базы это тоже будет не быстро. А после обрезки и вообще невозможно ))))
#8
by 1cnik2
посмотрел повнимательнее, то что я нашел - не то, что надо. эти алгоритмы находят приближенное решение, с условием, что сумма весов НЕ БОЛЬШЕ указанного значения. а мне надо алгоритм, который получает все наборы(ну или в крайнем случае первый попавшийся), сумма весов которых РАВНА указанному значению
#10
by Михаил Козлов
Таких может и не быть. Попробуйте неявную схему перебора, причем имеет смысл начинать с больших сумм. И попробовать сделать отсечение.
#14
by Shurjk
Если бы не нашел готовый алгоритм я бв сделал так: 1 упорядочить массив 2. для каждого элемента массива подбираю сумму других элементов при этом перебираю только те элементы которые меньше и не больше остатка суммы. по идеи в итоге должен получить все комбинации.
Тэги: Математика и алгоритмы
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Подбор и передача из подбора ТЗ
- Подбор товара... Как сделать, чтобы в документ при подборе
- Получить из списка N чисел, сумму максимально приближенную к необх.
- Число равно сумме квадратов своих цифр
- УФ: Вывести итог по сумме в форме списка документа
- Как открыть управляемую форму списка из обычной формы списка?
В этой группе 1С
- Открыть xls в IE
- CHKDSK aborted
- Запрос - остатки по регистру учитывая движения документа
- УТ 8.1. Программное заполнение Корректировки записей регистров
- Не грузится база, ругается на tmp файл!
- Как в запросе одно строковое разделить на два?
- Таблица значений выгрузка в текстовый файл
- УПП док Отчет о розничных продажах :Изменить Сумму в таб.части
- v8: Левое соединение задваивает строки результатирующей таблицы...
- СКД. Выражение представления ресурса
- Не формируется КУДиР по УСНО 15%
- Выделение цветом ячейки в отчете. Макет сделан вручную.
- JOB: Какой сертификат 1с ценится больше других?
- v8: Как объединить ячейки Excel из 1с
- Запрос остатков по с группировкой по дням.
- v7: Штрих-код в прайс-листе
- Предопределенная группировка в запросе
- Не видит процедуру из общего модуля
- ЗУП как вывести отчет по Инвалидам ?
- "Съезжает" панель с остатками товаров