|
|
|
Алгоритм "набора" суммы
|
|||
|---|---|---|---|
|
#18+
копья ломаем ... а там наверное простые ребята сидят, которые не оценят нашего юмора метод вилки , метод пузырьковой сортировки; графы, стеки ... все звучит как анахроизмы ... вон уже и программировать не надо уметь что бы работать програмистом 1с ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2009, 08:35 |
|
||
|
Алгоритм "набора" суммы
|
|||
|---|---|---|---|
|
#18+
да вопрос то не в том чем пользоваться для решения задачи (хотя и не так страшна рекурсия как звучит ) а в том что для практических целей данная постановка (набрать чего-то на опр. сумму) задачи "не взлетает" вот я предположим согласен с тем что в ~80% "кодить" в общепринятом смысле прогеру 1С и нет необходимости (сделать выборку потом перебором порассовывать куда-то чего-то и вкинуть результаты в хранилища или просто вывести в грид - не высокоаналитическая задача) зато есть необходимость включать моск для отрисовки там самой идеи (бизнес процесса и т.д. как пожелаете) посему включая моск получаем следующую картину (опять же в подавляющем большинстве случаев) 1. есть отдел занимающийся комплектацией поставок на филиалы (торг. точки, удалённые склады напрямую клиенту и т.д.) 2. есть сформированные потребности точек т.н. "заказы/дефектура/потребность" (там уже или вручную или по мин. остаткам или по планам и т.д.) 3. есть политики резервирования в заказах (категоризация топы бренды и т.д. см. мой первый пост в этой теме) 4. есть политики ограничения заказов (в т.ч. и одна из них которая оглашена в задаче т.е. бюджет - лимит суммы выделяемый на закупки и заказы за опр. период) 5. логистика (сюда вообще пока не заходим) 6. 7. .... энное условия формирования "корзинки" :) и уж поверьте после применения всего этого комплекса места для (забивки "от фонаря") останется оооочень мало и ломать копья насчет того чем пользоваться при наборе остатка просто не имеет смысла т.к. в любом случае это уже несущественно из-за малых объёмов и некритичности как по временным затратам на выполнение процедур так и для самого бизнеса вот собственно пару процентов верхнего слоя темы а вы с пузырьков начали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2009, 11:10 |
|
||
|
Алгоритм "набора" суммы
|
|||
|---|---|---|---|
|
#18+
просто не вижу смысла в подтверждении принципа 80/20 когда 80% времени реализации задачи уйдёт на наименее весомую преследуемую цель ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2009, 11:14 |
|
||
|
Алгоритм "набора" суммы
|
|||
|---|---|---|---|
|
#18+
2 Last1Cmen а вроде против вас ничего и не имею ... просто у автора вроде случай такой что начальник сказал что радиостанция сломалась на танке ... и вообще наверное существует более простой способ оценки возможных варинтов достигающих цели поскольку не надо искать оптимального пути ... выбираем в первый курсор всю номенклатуру цена на которую меньше верхней планки .... получилось уже не все множество, а урезанное собственно этот курсор нужно перегнать на клиента и обработать ибо тривиальный набор из одной номенклатуры у нас уже есть сочетания из 1 по 1 вроде? далее этот курсор объединяем (евклидовым умножением множеств?) с условием что бы итоговая цена была меньше планки ... находим нижнюю цену в евклидовом объединении отсекаем в первом курсоре цены заведомо в сумме с минимальной превышающие планку объединяем получившийся курсор с евклидовым по тем же условиям все со всеми ... объявляем задачу решенной поскольку нам нужны наборы из трех предметов не пинайте меня я знаю сколько может сожрать евклидово объединение , но начальник хочет запросом ... хотя если наложить дополнительные ограничения ... первый курсор будет и не таким большим ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2009, 16:37 |
|
||
|
Алгоритм "набора" суммы
|
|||
|---|---|---|---|
|
#18+
leafвыбираем в первый курсор всю номенклатуру цена на которую меньше верхней планки .... получилось уже не все множество, а урезанное собственно этот курсор нужно перегнать на клиента и обработать ибо тривиальный набор из одной номенклатуры у нас уже есть сочетания из 1 по 1 вроде? далее этот курсор объединяем (евклидовым умножением множеств?) с условием что бы итоговая цена была меньше планки ... находим нижнюю цену в евклидовом объединении отсекаем в первом курсоре цены заведомо в сумме с минимальной превышающие планку объединяем получившийся курсор с евклидовым по тем же условиям все со всеми ... объявляем задачу решенной поскольку нам нужны наборы из трех предметов Если нужно найти конкретно сочетания из N предметов, тогда, конечно же, можно сделать selfjoin N раз и с помощью having отобрать только те результаты, для которых сумма попадает в диапазон. Однако, такое решение менее эффективно и менее универсально, нежели рекурсивная процедура, которая находит комбинацию из произвольного количества предметов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2009, 16:16 |
|
||
|
|

start [/forum/topic.php?fid=28&gotonew=1&tid=1522893]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
191ms |
get topic data: |
8ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 482ms |

| 0 / 0 |
