我將創建一個我希望購買的產品清單。假設他們都有一個獨特的參考代碼。我有我可以從中購買的供應商清單,爲方便起見,每個供應商對每種產品都使用相同的參考碼。比較價格的方法
部分供應商收取運費。如果您花費少於一定金額,其他人只收取運費。某些供應商如果多次購買某些產品,則可能會有所折扣,但可能會有一些限制(例如,免費獲得1次)。
把我想要購買的產品清單和購買所有這些產品的總成本計算在一起非常容易。我想要做的是創建一個腳本來確定分割訂單是否更好。
例如:
零售商A費用:
產品A - £5
產品B - 10£
產品C - 10£
產品d - 10£
送貨 - £5
零售商乙電荷:
產品A - £5
產品B - £12
產品C - £12
產品d - £30
送貨 - £5 - 免費的,如果花£20以上
在這種情況下,如果我想只買產品C,最便宜的是從零售商A.
如果我想購買:
1X產品A
2X產品B
1X產品d
最便宜的是零售商B(因爲可免費送貨)的產品和B然後拆分訂單並從零售商A購買產品D(因爲即使在交貨時,即使交貨價格也顯着較低)。
所以在我的腦海裏,這不是一項複雜的工作,我可以在紙上很容易地完成。問題是,我如何將其轉換爲代碼。我不是在尋找代碼來實現它 - 只是一些關於如何實現它的理論的指導。
蠻力:生成所有可能的組合,確定每個組合的成本,並選擇最便宜的一個。 – dtb
我覺得這個問題是NP ...我錯了嗎? – Calpis
@Calpis你的意思可能是[NP-complete](http://en.wikipedia.org/wiki/Np-complete),這是有區別的。 – Dukeling