के लिए किसी न किसी अनुमान की गणना करें I शिपिंग के लिए आवश्यक बॉक्स आकार की गणना करने का सबसे अच्छा तरीका ढूंढने का प्रयास कर रहा हूं।शिपिंग बॉक्स आकार
मेरे पास 3 आकार के कंटेनर हैं जो विभिन्न आकारों के साथ हैं। मेरे पास उत्पाद की चौड़ाई, लंबाई, गहराई और डेटाबेस में परिभाषित द्रव्यमान है।
मैं जानना चाहता हूं कि जहाज में आवश्यक छोटी संख्या में बक्से कैसे ढूंढें, और कार्ट में वस्तुओं की संख्या के कारण उन बक्से के सबसे छोटे आयामों को कैसे ढूंढें।
मेरा वर्तमान 'विचार' पूरे उत्पाद सरणी की अधिकतम चौड़ाई को ढूंढना है, इसके अनुसार एक बॉक्स का चयन करें, और फिर आवश्यकतानुसार ऑर्डर को विभाजित करें ... ऐसा लगता है कि यह काम नहीं करेगा।
मेरे बॉक्स आकार हैं: - 8 x 6 x 6 = 228 घन इंच - 10 x 8 x 8 = 640 घन इंच - 12.5 x 12.5 x 12.5 = 1953.125 घन इंच
एक उत्पाद परिभाषित किया गया है जैसे:
[Product] => Array
(
[STOCK_CODE] => 010003
[Product_Slug] => GABA_010003
[ItemName] => GABA
[WHOLESALE_PRICE] => 17.47
[RETAIL_PRICE] => 24.95
[Brand] =>
[ProductLine] =>
[image_name] => 705077000440
[MASS] => 0.313
[Height] => 4.625
[Width] => 2.375
[Depth] => 2.375
[cubic_inches] => 26.087890625
)
मैंने knapsack समस्या, समस्या पैकिंग आदि में देखा है और ऐसा करने का कोई तरीका नहीं मिल रहा है। कोई भी मदद बहुत अच्छी रहेगी।
function shipping(){
$this->CartProduct->unbindModel(
array('belongsTo' => array('User'))
);
//find all cart products by current logged in user
$cartItems = $this->CartProduct->find('all', array('conditions' => array('CartProduct.user_id' => $this->Auth->user('id'))));
$i = 0;
//get the max width, height, depth
$maxHeight = 0;
$maxWidth = 0;
$maxDepth = 0;
foreach($cartItems as $c){
$cartItems[$i]['Product']['cubic_inches'] = $c['Product']['Height'] * $c['Product']['Width'] * $c['Product']['Depth'];
$cartItems[$i]['CartProduct']['total_cubic_inches'] = ($c['Product']['Height'] * $c['Product']['Width'] * $c['Product']['Depth']) * $c['CartProduct']['qty'];
if($c['Product']['Height'] > $maxHeight)
{
$maxHeight = $c['Product']['Height'];
}
if($c['Product']['Width'] > $maxWidth)
{
$maxWidth = $c['Product']['Width'];
}
if($c['Product']['Depth'] > $maxDepth)
{
$maxDepth = $c['Product']['Depth'];
}
$i++;
}
//possible containers
//8 x 6 x 6 = 228 ci
//10 x 8 x 8 = 640 ci
//12.5 x 12.5 x 12.5 = 1953.125
$possibleContainers = array(
1 => array(
'Height' => 8,
'Width' => 6,
'Depth' => 6,
'Cubic' => 228),
2 => array(
'Height' => 10,
'Width' => 8,
'Depth' => 8,
'Cubic' => 640),
3 => array(
'Height' => 12.5,
'Width' => 12.5,
'Depth' => 12.5,
'Cubic' => 1953.125)
);
$max = array(
'Height' => $maxHeight,
'Width' => $maxWidth,
'Depth' => $maxDepth,
);
pr($cartItems);
pr($possibleContainers);
die();
}
फिक्स्ड स्वरूपण ... यह होमवर्क नहीं है, यह एक शॉपिंग कार्ट सिस्टम के लिए है जिसे मैं लिख रहा हूं। – Wil
ऐसा लगता है कि जैसे ही कोई समस्या गैर-सामान्य, वास्तविक और मूर्त हो जाती है, वास्तव में वास्तविक जीवन की स्थिति पर लागू होने के लिए, इसे होमवर्क के रूप में लेबल किया जाता है, किसी कारण से =/ –
@ जस्टिन एल। मेरे बिल्कुल विपरीत विपरीत था - समस्या असली दुनिया होने के लिए बहुत सामान्य और फोकस थी। आपको क्या लगता है कि यह असली दुनिया थी? संख्याओं (3 बक्से) या वास्तविक आकार की उपस्थिति? वे होमवर्क मुझे संकेत देते हैं। आप दावा क्यों करते हैं कि यह गैर-सामान्य था? यह knapsack समस्या है और यह वास्तव में कठिन है - यही कारण है कि यह आमतौर पर होमवर्क है। –