@blanka

Какой алгоритм проверки условия?

Не получается продумать алгоритм проверки.

Суть. Допустим, есть 3 вида товаров (SKU-1, SKU-2, SKU-3).
Есть комбинации товаров, которые могут быть списаны:
1. Любые 2 вида товаров (SKU) (3шт). То есть, комбинации SKU-1 и SKU-2, SKU-1 и SKU-3, SKU-2 и SKU-3.
2. Товар SKU-2 (2шт).

Всего было доступно:
  • SKU-1 - 5шт
  • SKU-2 - 5шт
  • SKU-3 - 0

Есть данные, что:
- по условию № 1 списано 2 раза.
- по условию № 2 списано 2 раза.

Задача: проверить, возможно ли было такое списание.

Так, если всего товаров было 10 (5+5+0), то списание по условию №1 (3шт) 2 раза = 3 * 2 = 6, а по условию №2 (2шт) 2 раза = 2 * 2 = 4. Тогда 6 + 4 = 5 + 5 + 0 истина, что не правильно, так как при соблюдении условий есть остаток SKU-1 - 3шт.

Условия (изображение):
e89488ff65e44f368f59a9fa0ee80981.png


Подскажите в какую сторону копать, а то как-то не соображу.
Спасибо!
  • Вопрос задан
  • 306 просмотров
Решения вопроса 2
Therapyx
@Therapyx
Data Science
Дак по первому условию может быть списанно любые 2 вида товаров в кол-ве 3 шт.
Если первое списание будет полностью из SKU1 и второе в размере двух единиц из SKU1 и одной из SKU2, то в SKU2 остается ровно 4 для двух списываний из 2го условия.
Или я видимо не так понял первое условие, но "Любые 2 вида товароров 3шт". Все таки должно подразумивать в себе и возможность комбинирования этих товаров, там ведь не указанно, что списание может быть любым, но все 3 штуки должны быть списанны именно из 1го SKU
Ответ написан
Формально у Вас недоопределенная (количество переменных больше чем количество уравнений) система целочисленных линейных уравнений, которую необходимо решить в неотрицательных целых числах:
x - кол-во списаний по правилу SKU-1+SKU-2
y - кол-во списаний по правилу SKU-2+SKU-3
z - кол-во списаний по правилу SKU-1+SKU-3
t - кол-во списаний по правилу SKU-2+SKU-2
SKU-1: 1*x + 0*y + 1*z + 0*t = 5
SKU-2: 1*x + 1*y + 0*z + 2*t = 5
SKU-3: 0*x + 1*y + 1*z + 0*t = 0

Готового алгоритма для общего случая не подскажу.
Из-за того, что система недоопределенная она может иметь несколько решений, и поиск одного из них обычно ведется каким-либо поиском с постепенной фиксацией значений переменных.

P.S. Не увидел абзац про условия (по 2 раза) - т.е. дополняем уравнениями:
x + y + z = 2
t = 2
и конкретно в Вашем случае система становится полностью определенной и не имеющей решения в неотрицательных числах (из-за того, что SKU-3 было 0, а значит y=0 и z=0). :-(
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы