Добрый день Есть табличка с рецептами. На каждое изделие есть несколько рецептов, которые могут отличаться - или явной заменой ингредиентов, или не явной.
Надо вывести в сводную список ингредиентов, которые 1) встречались во всех рецептах для тех изделий, где встречались... (как бы это по русски...)
Пример первого условия - яйцо и яичный порошок. Яйцо есть в рецептах Булочки и Пирожка. Но в одном рецепте Булочки (файл Булка 4) оно отсутствует. Значит, его не надо выводить вообще.
В то же время Муку этим условием отфильтровывать не надо, несмотря на то, что в рецепте Булочки ее нет. Т.е. ее нет ни в одном рецепте Булочки, но есть во всех рецептах Пирожка - нет разнобоя внутри категорий.
2) для них не указывались замены Со вторым условием проще. но я сломалась об первое.
Номер файла - это у меня номер "внутри категории" - последний символ названия файла. Номер ВЗ соответствует названию файла. Обломки моих попыток.
То есть в данном примере должна быть выведена только Мука.
Т.к. у яблок и красителя есть явные замены, а яйцо в одном рецепте заменено без явного указания.
/удалила из файла модель данных, она все равно из одной таблички состоит.
Оно, вроде, там, в соответствии. Голову бы мне туда привести Не указала, что название изделий в столбце с заголовком "Блок".
Есть 2 изделия ("Блоки"): Булочка и Пирожок. На Булочку есть 4 рецепта (списка ингредиентов), рецепты содержатся в файлах "Булка1"... "Булка4". На Пирожок, соответственно, 3 рецепта.
По минимуму для решения достаточно столбцов "Файл", "Наименование" и "Замена", в них достаточно информации. Остальные избыточные, да.
Правильный ответ - отфильтровать только строки с Мукой и в мере с нужными фильтрами посчитать что попало (я ставлю "количество файлов" для наглядности - для Пирожка это 3, чтобы видно было, что отфильтровано 3 строки и цифра 3)
Xel написал: То есть в данном примере должна быть выведена только Мука.
Так и не объяснено почему. Встречается во всех Яйцо, и краситель. Дискриминация по первой букве в алфавите? Не описан алгоритм учёта замены, совсем. В общем, как было интересно, а дальше уже сами, думаю принцип будет понятен.
Нет. Оно есть в 3 рецептах Булочки, в четвертом - его нет. Репутация запятнана, то, что яйцо есть во всех рецептах Пирожка - не имеет значения. Это как раз условие номер 1 из первого поста.
Xel написал: Нет. Оно есть в 3 рецептах Булочки, в четвертом - его нет
причём тут булочка, если вопрос был про муку, сопутствующей ей яйцо и краситель, то есть про пирожок В булочке, как это ни странно, муки нет. В общем, старый я, чтобы понимать такие постановки задач. Ребусов и на работе хватает. Надеюсь, следующий сможет понять, что же всё же должно быть и почему в результате.
Андрей VG написал: В булочке, как это ни странно, муки нет.
Но в блоке, где она есть, она есть 1) во всех рецептах 2) без замен. Фильтр "найти ингредиент, который присутствует во всех блоках" проще, чем то, что у меня не получается, его я сделала бы легко /наверное/, но это не требуется. В оригинале в принципе нет ни одного ингредиента, который присутствовал бы везде. Поэтому именно Мука, не входящая в Булочку тут иллюстрирует правильный ответ. Это модная безглютеновая булка
Из заглавного поста "1) встречались во всех рецептах для тех изделий, где встречались... (как бы это по русски...)".
То есть отсутствие в каком-то блоке - не проблема, нет и не надо. Поэтому именно Мука - Ок и проходит проверку.
А присутствие только в части рецептов в любом блоке - проблема, поэтому фильтр должен отсеять Яйцо, которого нет в одном из четырех рецептов Булочки.
В итог должна попасть Мука. Она есть в рецептах Пирожка, во всех 3. И во всех 4 рецептах Булочки она синхронно отсутствует. Не должны попасть Яйца - Их нет в одном рецепте Булочки.
Не должны попасть остальные ингредиенты - для них есть замены.