【发布时间】:2017-10-28 06:57:19
【问题描述】:
我正在开发一个订单管理应用程序。一个订单包含多个产品,每个产品都存在于仓库中,现在我必须找到最佳组合,以根据运输成本拆分订单数量以放入包裹中。
例如,我有两个仓库W1、W2。客户订购了数量为 9 的两个产品 P1 和数量为 1 的产品 P2。情况是产品 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
【问题讨论】:
标签: c# linq permutation