有這樣乙個需求, 需要對一組元素進行打包(裝箱),箱子的容積一定,但是至少可以裝入一件物品,即使物品的體積大於箱子,求用最少的箱子裝載。
該問題類似裝箱。在對物體發貨時候,可以達到最少的包裹數,挺有實際意義,藉此研究一下裝箱問題。下面**是對與該問題的實現。由於是記錄作用,文筆較為粗糙,後續修正加以詳細說明。
具體實現**如下:
$items = array( 0.1,0.3,0.8,0.4,0.5,0.2,1);
//sort($items,sort_desc);
defined('boxsize') || define('boxsize',1);
function bestencasement($items
)
//探測盒子是否為空 如果為空將元素加入
if(empty($box[$j
])) }
else
if($tmpsize>0)
else}}
}return
$box;}
print_r(bestencasement($items));
<?php$items = array
( 0.1,0.3,0.8,0.4,0.5,0.2,1,11,12);
shuffle($items);//
用於亂序測試
//sort($items,sort_desc);
defined('boxsize') || define('boxsize',1);
function bestencasement($items
)
//探測盒子是否為空 如果為空將元素加入
if(empty($box[$j
])) }
else
if($tmpsize>0)
else}}
}return
$box;}
print_r(bestencasement($items));
近似裝箱問題
設給定n項物品,大小為s1,s2,s3,sn,每個物品的都不超過1 現有大小為1的箱子若干個,將物品裝入箱子中,盡量使用少的箱子裝滿所有物品 例項 現有一列物品 0.2,0.5,0.4,0.7,0.1,0.3,0.8 其中一種裝箱方案如下所示 裝箱問題是乙個np完全問題,np完全問題的最優解的時間複...
裝箱問題近似演算法概述
問題描述 一維經典裝箱問題可描述如下 s s1,s2,sn 其中0 si 1,稱之為第i個物體的體積 或重量 1 i n,現有n個容積 或載重量 為1 的箱子,要求如何設法將s1,s2,sn放入盡可能少的箱中。裝箱問題是np問題,即在多項式時間內無法精確求解,一般採用近似演算法,即啟發式演算法,這樣...
關於閏年問題的思考
如果某一年的年份能被4整除,但是不能被100整除,那麼這一年就是閏年,此外能被400整除的年份也是閏年。我對這個問題一直沒有弄清楚,最近經過仔細考量,發現自己以前對這個問題存在兩個思維誤區 1.能被4整除,不能被100整除是閏年。那麼能被4整除,也能被100整除是不是閏年?2.能被400整除 與 能...