Как соответственно разделить число на заданные диапазоны (диапазоны основаны на приоритете)? - PullRequest
0 голосов
/ 20 февраля 2020

Вот сценарий. Запрашиваемая сумма 789 У меня 4 склада. Склад 1 будет иметь наивысший приоритет и будет следовать за складом 2 и т. Д. c ... Все склады имеют свой собственный минимальный и максимальный запас для распределения. Теперь я хочу разделить запрашиваемую сумму в соответствии с доступными диапазонами. * Не обязательно использовать весь склад, но в первую очередь необходимо использовать наивысший приоритет. * Все склады могут использовать только один раз. Ожидая ответа, как показано на рисунке ниже.

Есть ли какой-нибудь алгоритм, чтобы получить мне ответ?> [400,189,200] Большое спасибо ![enter image description here] 1

1 Ответ

0 голосов
/ 20 февраля 2020
  1. Проверьте, покрывает ли максимум 1-го склада запрошенную сумму. Если нет, проверьте, покрывает ли максимум 1 и 2, если нет, максимум 1,2 и 3 ... до тех пор, пока он не охватит. Теперь у вас есть x склады для использования.
  2. Начните с самого начала. Используйте минимально возможный от каждого склада до вершины. Минимум менее приоритетного склада, плюс минимум 2-го менее приоритетного ... Сумма всех минимумов может не покрыть запрошенную сумму, но давайте продолжим с этой суммой
  3. Начать добавление из более приоритетного склада - добавить по максимуму. Это покрывает?
  4. Если да, удалить (с этого склада) до тех пор, пока запрошенная сумма не будет равна собранной.
  5. Если нет, повторите шаги 3 и 4 для 2-го более приоритетного склада, 3-го, 4-го. ..
...