我正在開發一個購物車項目,該項目需要基於該用戶在購物車中的物品的「郵資計算器」。用於包裹包裝的PHP/C++空間計算
很明顯,我將存儲項目的尺寸incl。體重和填充在數據庫中,並且還將存儲項目將進入的包裹(包裹)尺寸和重量,盒子填充。
確定包裹的重量很容易,但我想知道如何去弄清楚如何通過PHP打包盒子,也就是說,我希望代碼能夠與物品一起玩「俄羅斯方塊」,以確保它們獲得最佳的適合度,並提供準確的郵資費用。
有沒有人有任何想法如何最好地實現這一點,或有人知道一個PHP類或功能可以做到這一點?
編輯:當我說'最好可能適合'也許我很樂觀!讓腳本嘗試在包內分發包的每種可能的組合將超過頂部,但是我可以通過在C++中編寫算法並在用戶'檢出'時使用PHP運行程序來提高速度,返回值是陣列與包裹大小和重量(這些都是需要計算郵資費用)
我相信這是一個[NP難題](http://en.wikipedia.org/wiki/Bin_packing_problem),所以不要指望得到一個「好」的解決方案。 – kba 2012-04-15 22:42:49
@Kristian - 您的鏈接證實了我的懷疑:最好先爭取「最大的第一」,然後編寫一個算法,以便在三個不同的位置處理每個項目,在第一個適合的位置停下來,然後增加到下一個尺寸的包裝如果它不適合。我的主要擔心是過度收費郵資......或收費不足,這不會太好! – 2012-04-15 23:04:34