|
Преобразовать дерево значений к иному виду | ☑ | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0
Vasilisk
26.05.15
✎
15:33
|
Добрый день господа и дамы есть непростая, но интересная задачка, не прошу что бы ее решили за меня, но было бы интересно почитать мысли по вариантам реализации.
Условия задачи: Есть дерево с колонками (Номенклатура, Количество, Операция) суть дерева в отражении состава конкретной номенклатуры а также операции над ней для ее получения. Пример: Хлеб-1 шт Опер. Запекать -тесто- 1 шт Опер. Месить -мука 1 кг Опер. Взять из заначки -соль 100 мг Опер. Взять из заначки -сахар 3 кг Опер. Взять из заначки -соль 30 мг Опер. Взять из заначки Сама задача: Необходимо преобразовать данные дерева к другому виду вот к такому: Опер. Взять из заначки- -мука 1 кг -соль 130 мг -сахар 3 кг Опер. Месить- -тесто- 1 шт -мука 1 кг -соль 100 мг -сахар 3 кг Опер. Запекать- Хлеб-1 шт -тесто- 1 шт -Соль- 30 гр То есть суть в том что бы получить пошаговые пары изделие-материал в разрезе операций, наверное как то так, при том что структура дерева идет по составу а не по порядку операций. Непосредственная трудность с которой я столкнулся это свертка по количеству в дереве(Обратите внимание на соль), так как дерево в работе будет значительно глубже, то применим только рекурсивный подход. |
||||||||||||||||
14
Vasilisk
27.05.15
✎
10:21
|
Пока логическое решение:
1. Переводим дерево значений в таб. значений. вида(Изделие кол изделия, кол элементов состав, материал кол материала) 2. Выделяем операции. 3. Отбираем строки таб. значений по операциям. 4. Скопируем строки таб. знач в новую таб. знач. Производим свертку по изделию и кол элементов состав с суммой по количеству. затем количество изделия делим на кол состав. 5. Из первой таб. знач отбираем строки с изделием и операцией. Сворачиваем полученное в новой таб знач с суммой по количеству материала. Кто найдет проблему, пишите. Срочно иду патентовать данный рецепт |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |