Имя: Пароль:
1C
1C 7.7
v7: Задача о сумме подмножеств, набрать требуемую сумму из слагаемых
🠗 (Волшебник 30.01.2024 14:02)
0 Злопчинский
 
30.01.24
13:08
Есть перечень слагаемых (положительные), требуется набрать заданную сумму из этих слагаемых.
.
может у кого есть готовое решение на 7.7?
.
и вообще насколько это времязатратная/памятизатратная  задача? слагаемых ~5000 - похоже что в обозримое время это не решить.
.
а если решать приближненно?
1 zenik
 
30.01.24
13:08
Копай в сторону "задача о рюкзаке"
2 Волшебник
 
30.01.24
13:15
отстортировать слагаемые по убыванию, далее набирать сумму
Пока СуммаНабранного < СуммаТребуемая Цикл
3 ЯнСмит
 
30.01.24
13:16
4 Злопчинский
 
30.01.24
13:19
(2) ну, это я и сам умею, тут погрешность может быть большая.
вариант: сначала набираем не более требуемой крупными слагаемыми (по убыванию), потом остаток добираем мелкими слагаемыми... Это если совсем грубо забиться погрешностью.
5 Злопчинский
 
30.01.24
13:19
(1) эта задача так и называется "задача о сумме подмножеств".
6 Волшебник
 
30.01.24
13:23
7 Злопчинский
 
30.01.24
13:25
(6) я в курсе
8 Волшебник
 
30.01.24
13:27
(7) Может Вы наполните задачу из сабжа прикладным смыслом? Так нам будет веселее. Ведь автоматизировать склад и загружать контейнеры гораздо прикольнее, чем суммировать слагаемые
9 Злопчинский
 
30.01.24
13:46
(8) а и наполнять не надо. вот прямо такой и есть прикладной смысл. 1-в-1. Отчет, в котором перечень сумм. Итоговая сумма по отчету - условно - 10млн. Надо чтобы итоговая сумма стала - условно 3млн382тыс. Соответсвенно либо набрать слагаемых на 3млн382тыс либо исключить слагаемых на 6млн618тыс.
10 MWWRuza
 
гуру
30.01.24
13:50
"Процентовки" в строительстве? :-)))
Типа, есть сумма, которую надо "отмыть", для этого набрать список работ/услуг для подгона к этой сумме?
11 Волшебник
 
30.01.24
13:59
(9) Кому это надо и зачем?
12 Злопчинский
 
30.01.24
14:02
(11) не мне лично - это точно...
13 Михаил Козлов
 
30.01.24
14:02
Поищите в инете про задачу о рюкзаке: может кроме "жадного" найдете что-то подходящее. Здесь на форуме был человек, который в свое время рюкзаком занимался: забыл логин, может Волшебник помнит?
14 Волшебник
 
30.01.24
14:02
(12) Ну тогда топлю ветку, ибо это бессмысленная числодробилка
15 Волшебник
 
30.01.24
14:04
16 Злопчинский
 
30.01.24
14:22
Ладно, понятно что навскидку не решить, а времени заниматься под это у меня нет...
17 Злопчинский
 
30.01.24
14:30
я в свое время делал рекурсией по NS-ному алгоритму, но это было давно и хз где это у меня... На 2-3 сотнях элементов работало достаточно быстро
18 Михаил Козлов
 
30.01.24
16:33
(17) Точно, это был NS.
19 AAA
 
30.01.24
18:16
Если решать не теоретическую задачу, а отталкиваться от "зачем это надо" может быть и решение значительно упростится. Набор этих слагаемых наверняка не просто произвольный, а с какими то особенностями.
Забавно, что всегда считал, что это Задача о ранце, но в поиске Задача о рюкзаке доминирует
20 Волшебник
 
30.01.24
18:49
(19) Более того, в реальной предметной области можно оценить погрешность и её влияние на бизнес. Стоит ли городить огород там, где этого не ждут? Вы упакуете плотно грузовик, а грузчики сложат груз по-своему. Что вошло, то поехало.
21 Михаил Козлов
 
30.01.24
22:01
(16) Вот выбрали бы время и решили важную задачу. Премию бы (Форда-Фалкерсона как минимум) дали.