我正在处理订单管理申请。一个订单包含多个产品,每个产品都存在于仓库中,现在我必须找到最佳组合,以根据运输成本拆分订单数量。
例如,我有两个仓库W1,W2。客户订购两个产品P1,数量为9,产品P2,数量为1.情况是产品P2仅存在于仓库W1中,产品P1存在于两个仓库中。现在我想找到所有可能的组合,将此订单分成两个包,以找到最便宜的成本。每个仓库的数量小于或等于5(每个包裹限制为5),其成本固定费率(5美元),任何大于数量5的仓库成本固定费率+额外费用。 W1的额外费用为1美元,W2的额外费用为2美元。
Product W1 W2
P1 9
P2 1 N/A
Product W1 W2
P1 8 1
P2 1 N/A
Product W1 W2
P1 7 2
P2 1 N/A
.
.
.
Product W1 W2
P1 1 8
P2 1 N/A
Product W1 W2
P1 9
P2 1 N/A
我能够在纸上创建这样的清单并计算出我发现的成本和最佳组合,统一费率W1送一个包5美元,W2送另一个包5美元,所以总费用是10美元,没有额外费用图片,因为包中的数量不超过5.我到目前为止创建了一个字典,其中仓库作为关键,并根据可用性从每个订单中列出产品列表,但我无法继续使用此组合并需要一些帮助。 linq可以帮忙吗?。
Product W1 W2
P1 4 5
P2 1 N/A
答案 0 :(得分:0)
这很简单,你不需要传递整个排列。我也不会使用LINQ。只需简单明了,就可以使用以下算法编写订单计划服务:
对于任何产品,
如果您将此算法应用于您的示例,您将直接获得预期结果。