Получение всех возможных списков рецептов, необходимых для производства предмета - PullRequest
0 голосов
/ 26 мая 2020

Прошу прощения за расплывчатое название, но я не знаю, как это лучше описать. Не уверен, что это правильный сайт.

Допустим, у меня есть список рецептов:

rip + ir => mf
ip => ir
ip + s => rip
ii => ip
ir => s

Мне нужны все возможные списки требуемых рецептов (и сколько раз ) для создания финального элемента mf. Для каждого предмета есть только один рецепт, поэтому на данный момент существует один список рецептов (и требуются все рецепты, даже три раза: ii => ip).

Когда я добавляю второй рецепт для s:

ip => s

Теперь у меня есть два возможных списка рецептов (разница в том, что используется элемент s, либо ir => s, либо ip => s).

Но добавляем еще два рецепты:

sp => ip
i + c => sp

Все усложняет, теперь списки возможных способов получения mf имеют переменную длину (получение ip с последним рецептом требует одного дополнительного шага), и его становится все больше и больше компилируется, когда добавляется больше разных рецептов, по которым производятся одни и те же предметы.

Мой вопрос: как я могу решить эту проблему? Известно ли что-то, что уже было решено несколько раз?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...