Анончики, помогите решить комбинаторную задачу по программированию, сам я уже два дня голову ломаю, не могу придумать решение, знаю что наверное нужно мутить рекурсии, и видимо не одну, но чтото совсем не могу сообразить.
Есть события (event), у которых есть продюсеры (producer), у одного события может быть много продюсеров, у продюсера есть товары (item) подходящие для конкретного события (event). Задача, сгрупировать товары, одних продюсеров, с другими товарами, этогоже продюсера, из других событий, в одной группировке может быть только один товар из одного события. Количество группировок варируется от количества событий, например если событий три то: #1 групировка из 2 товаров: товар1 продюсера1 из события1 + товар1, продюсера1 из события2 #2 группировка уже из 3 товаров: товар1 продюсера1 из события1 + товар1, продюсера1 из события2 + товар1, продюсера1, из события3 #3 группировка опять 2 два товара, для следующего товара этого продюсера из первого события: товар2 продюсера1 из события1 + товар1, продюсера1 из события2 #4 группировка три товара: товар2 продюсера1 из события1 + товар1, продюсера1 из события2 + товар1, продюсера1, из события3 .... #n группиировака: товар1 продюсера1 из события1 + товар2, продюсера1 из события2 #n группиировака: товар1 продюсера1 из события1 + товар2, продюсера1 из события2 + товар1, продюсера1, из события3 ... Далее также для всех товаров этого продюсера, а потом и также для товаров следующего продюсера
Группируются товары только из разных событий, внутри одного события товар не группируется, т.е. в одной групировке может быть только один товар одного события. Группируются, между собой, только товары одного и тогоже продюсера, товары разных продюсеров между собой не группируются Группировка должна быть без повторов, т.е. если товар1 продюсера1 из события1 уже сгрупирован с товаром2 продюсера1 из события2, то группировать наоборот товар2 продюсера1 из события2 с товаром1 продюсера1 из события1 уже не надо
Кто знает как на комбинаторном языке называется такая группировка? Помогите написать алгоритм группировки, желательно на PHP или Си.
Пример структуры из трех событий, с двумя одинаковыми продюсерами, в каждом событии. На этой структуре необходимо тестировать алгоритм группировки товаров продюсера https://pastebin.com/pt0Q8Xsg
>>194713863 >боты уничтожили всех программистов на дваче
эх, раньше были времена, создаеш тред для программистов, прибегало куча анонов с помощью, а теперь никого, только один бот? с гебешным телеграмом, пришел
>>194712026 (OP) Опиши json структуру. Event = [{itemList: [{id: "100"}]}, {itemList: [{id: "100"}, {id: "101"}]}] Если в результате должно вывести [{id: "100"}, {id: "101"}], то это обычная структура типа map с ключем по id, которая заполняется двойным циклом, первый из которых проходит по все producer, второй по всем элементам внутри. В комбинаторике специального какого-то названия не врядли встретишь, может группировка без повторений. Но это обычная алгоритмическая задача.
Незабывай нужно генерить несколько группировок, для одного товара, которые будут отличатся лиш количеством товаром из разных событий, по возростающей, в зависимости от количества событий, например: товар1 продюсер1 событие1 + товар1 продюсер1 событие2 товар1 продюсер1 событие1 + товар1 продюсер1 событие2 + товар1 продюсер1 событие3
т.е. двойным циклом, просто проходом по продюсерам, и товарам, этого не сделать же
>>194716976 >Опиши json структуру. В примере по ссылке есть пример структуры для группировки, а какая будет результирующая, да мне всеровно, главное чтоб групировались товары в ней
тебе нужно положить в Collection col1 = new Collection() все итемы разных ивентов (убрать дублирование, как я понял)
значт так йобана class events { чо то там } class prods extends events implements items { чо то там } interface items { чо то там }
типа таво
как блять положить итемы в кол?
берем и обращаемся к каждому итему foreach(ля ля ля){ хуе мое сравниваем имена суперклассов, если их много - кладем в кол для этих суперклассов, если супер один - кладем в кол его имени }
получится для event1 event2 ... eventN есть Collection colEvents12N, в которой лежат твои итемы для этих евентов.
>>194718875 щас я попробую переварить тобой написанно и описать в чем проблема с твоим примером
>>194718875 >убрать дублирование, как я понял да дело не только в этом, смысл в том чтоб наделать кучу всех возможных вариантов групировок, по одному товару из каждого события от каждого продюсера, а нужно все это вообще для того чтоб потом анализировать некоторые, неуказанные в примере, свойства товаров, и выявлять лучшие сочетания
>>194719314 Да я вообще хуй знате чо та ивенты у тебя, продюссеры какие то взялись блять, итемы нахой. Я жабист. Ты мне голову ломаешь этими терминами.
Крч есть батя, у каждого бати есть по одной его жене она же мамка, и у каждой мамки есть много разных блять детей, причем дети могут быть и от другого бати. Так твоя схема выглядит?
>>194719587 да только у Бати почти всегда много жен (мамок) и у других батей , пости всегда теже самые жены что и у бати номер один. А дети у жен (мамок), в зависимости у какого она бати, в данный момент времени, разные Нужно брать по одному детенышу от каждого бати и много раз группировать их между другими детенышами этойже мамки, но другого бати
Я щас понимаю что наверное проще переделать структуру из: событие(батя)->продюсеры(мамка)->товары(дети) в продюсеры(мамка)->события(батя)->товары(дети) и тогда похоже все становится куда проще
>>194720356 Тогда смари. В твоей структуре мы делаем следующее.
выстраиваем очередь из мамок (forech)
спрашиваем каждую за список ее детей Каждого дитя спрашиваем с каким батей у него есть связь. Группируем однобатевных в группу (это не конечный массив, а вектор, будем добавлять по ходу дела)
Ну и так далее.
А вообще у тебя структура ебаная. С ней трудно работать.
>>194720572 Бля. Ща падажжи. Там же еще от момента зависит. В момент исполнения будет одна структура, а завтра другая судя по этому вот -> >у Бати почти всегда много жен (мамок) и у других батей , пости всегда теже самые жены что и у бати номер один. А дети у жен (мамок), в зависимости у какого она бати, в данный момент времени, разные
Чот эта поправка такие палки вставляет. Чому ты просто не юзанешь бинарные деревья, или графы?
>>194715817 Да у меня то же есть гебешный телеграм. Только нахуй его анонам давать янипонел. Сижу себе спокойно ковыряю свою ветку в гите. Никого не трогаю. И тут на тебе. Оказывается надо было дать телегу. А нахуя?
Анончики, помогите решить комбинаторную задачу по программированию, сам я уже два дня голову ломаю, не могу придумать решение, знаю что наверное нужно мутить рекурсии, и видимо не одну, но чтото совсем не могу сообразить.
Есть события (event), у которых есть продюсеры (producer), у одного события может быть много продюсеров, у продюсера есть товары (item) подходящие для конкретного события (event).
Задача, сгрупировать товары, одних продюсеров, с другими товарами, этогоже продюсера, из других событий, в одной группировке может быть только один товар из одного события.
Количество группировок варируется от количества событий, например если событий три то:
#1 групировка из 2 товаров: товар1 продюсера1 из события1 + товар1, продюсера1 из события2
#2 группировка уже из 3 товаров: товар1 продюсера1 из события1 + товар1, продюсера1 из события2 + товар1, продюсера1, из события3
#3 группировка опять 2 два товара, для следующего товара этого продюсера из первого события: товар2 продюсера1 из события1 + товар1, продюсера1 из события2
#4 группировка три товара: товар2 продюсера1 из события1 + товар1, продюсера1 из события2 + товар1, продюсера1, из события3
....
#n группиировака: товар1 продюсера1 из события1 + товар2, продюсера1 из события2
#n группиировака: товар1 продюсера1 из события1 + товар2, продюсера1 из события2 + товар1, продюсера1, из события3
...
Далее также для всех товаров этого продюсера, а потом и также для товаров следующего продюсера
Группируются товары только из разных событий, внутри одного события товар не группируется, т.е. в одной групировке может быть только один товар одного события.
Группируются, между собой, только товары одного и тогоже продюсера, товары разных продюсеров между собой не группируются
Группировка должна быть без повторов, т.е. если товар1 продюсера1 из события1 уже сгрупирован с товаром2 продюсера1 из события2, то группировать наоборот товар2 продюсера1 из события2 с товаром1 продюсера1 из события1 уже не надо
Кто знает как на комбинаторном языке называется такая группировка?
Помогите написать алгоритм группировки, желательно на PHP или Си.
Пример структуры из трех событий, с двумя одинаковыми продюсерами, в каждом событии. На этой структуре необходимо тестировать алгоритм группировки товаров продюсера
https://pastebin.com/pt0Q8Xsg