如何将数字相应地分成给定的范围(范围基于优先级)?
How to split the number into given ranges accordingly (ranges are based on priority)?
场景如下
给定请求数量 789
我有4个仓库。仓库 1 将是最高优先级,其次是仓库 2 等...
所有仓库都有自己的最小和最大库存量来分配。
现在我想拆分请求的金额以适应可用范围。
*不需要使用所有仓库,但必须首先使用最高优先级。
*所有仓库只能使用一次
期待下图的回答。
有什么算法可以给我答案吗?> [400,189,200]
非常感谢]1
- 检查第一个仓库的最大值是否满足请求的数量。如果不是,检查 1 和 2 的最大值是否覆盖,如果不是,则检查 1,2 和 3 的最大值......直到覆盖。现在您可以使用
x
个仓库。
- 现在从底部开始。从每个仓库使用尽可能少的东西,直到用完为止。低优先级仓库的最小值,加上第二低优先级的最小值...所有最小值的总和可能无法满足要求的数量,但让我们继续处理该数量
- 从优先级更高的仓库开始添加 - 添加到它的最大值。它涵盖了吗?
- 如果是,移除(从那个仓库)直到请求的数量等于收集的数量。
- 如果不是,对第2个更优先的仓库,第3个,第4个...重复步骤3和4...
场景如下 给定请求数量 789 我有4个仓库。仓库 1 将是最高优先级,其次是仓库 2 等... 所有仓库都有自己的最小和最大库存量来分配。 现在我想拆分请求的金额以适应可用范围。 *不需要使用所有仓库,但必须首先使用最高优先级。 *所有仓库只能使用一次 期待下图的回答。
有什么算法可以给我答案吗?> [400,189,200]
非常感谢
- 检查第一个仓库的最大值是否满足请求的数量。如果不是,检查 1 和 2 的最大值是否覆盖,如果不是,则检查 1,2 和 3 的最大值......直到覆盖。现在您可以使用
x
个仓库。 - 现在从底部开始。从每个仓库使用尽可能少的东西,直到用完为止。低优先级仓库的最小值,加上第二低优先级的最小值...所有最小值的总和可能无法满足要求的数量,但让我们继续处理该数量
- 从优先级更高的仓库开始添加 - 添加到它的最大值。它涵盖了吗?
- 如果是,移除(从那个仓库)直到请求的数量等于收集的数量。
- 如果不是,对第2个更优先的仓库,第3个,第4个...重复步骤3和4...