PHP貪婪算法解決0-1背包問題實(shí)例分析
本文實(shí)例講述了PHP貪婪算法解決0-1背包問題的方法。分享給大家供大家參考。具體分析如下:
貪心算法解決0-1背包問題,全局最優(yōu)解通過局部最優(yōu)解來獲得!比動(dòng)態(tài)規(guī)劃解決背包問題更靈活!
//0-1背包貪心算法問題
class tanxin{
public $weight;
public $price;
public function __construct($weight=0,$price=0)
{
$this->weight=$weight;
$this->price=$price;
}
}
//生成數(shù)據(jù)
$n=10;
for($i=1;$i<=$n;$i++){
$weight=rand(1,20);
$price=rand(1,10);
$x[$i]=new tanxin($weight,$price);
}
//輸出結(jié)果
function display($x)
{
$len=count($x);
foreach($x as $val){
echo $val->weight,' ',$val->price;
echo '<br>';
}
}
//按照價(jià)格和重量比排序
function tsort(&$x)
{
$len=count($x);
for($i=1;$i<=$len;$i++)
{
for($j=1;$j<=$len-$i;$j++)
{
$temp=$x[$j];
$res=$x[$j+1]->price/$x[$j+1]->weight;
$temres=$temp->price/$temp->weight;
if($res>$temres){
$x[$j]=$x[$j+1];
$x[$j+1]=$temp;
}
}
}
}
//貪心算法
function tanxin($x,$totalweight=50)
{
$len=count($x);
$allprice=0;
for($i=1;$i<=$len;$i++){
if($x[$i]->weight>$totalweight) break;
else{
$allprice+=$x[$i]->price;
$totalweight=$totalweight-$x[$i]->weight;
}
}
if($i<$len) $allprice+=$x[$i]->price*($totalweight/$x[$i]->weight);
return $allprice;
}
tsort($x);//按非遞增次序排序
display($x);//顯示
echo '0-1背包最優(yōu)解為:';
echo tanxin($x);
希望本文所述對大家的php程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP實(shí)現(xiàn)的通過參數(shù)生成MYSQL語句類完整實(shí)例
這篇文章主要介紹了PHP實(shí)現(xiàn)的通過參數(shù)生成MYSQL語句類,結(jié)合完整實(shí)例形式分析了生成MYSQL語句類的實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下2016-04-04
PHP屏蔽蜘蛛訪問代碼及常用搜索引擎的HTTP_USER_AGENT
屏蔽蜘蛛相信每一位站長都不希望這樣做吧,因?yàn)橹┲氲脑L問就沒有用戶的瀏覽,直接會(huì)給我們帶來一定損失,不過也有例外,某些網(wǎng)站就不希望被蜘蛛爬行,接下來為你介紹屏蔽蜘蛛的php代碼2013-03-03
如何直接訪問php實(shí)例對象中的private屬性詳解
這篇文章主要給大家介紹了關(guān)于如何直接訪問php實(shí)例對象中private屬性的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10
php foreach 使用&(與運(yùn)算符)引用賦值要注意的問題
foreach 通過在 $value 之前加上 & 很容易就能修改數(shù)組的單元,在 foreach 使用引用時(shí)要注意了。也可以在處理完后立即斷開引用關(guān)系,后面就不會(huì)有上述情況了。2010-02-02
詳談symfony window下的安裝 安裝時(shí)候出現(xiàn)的問題以及解決方法
下面小編就為大家?guī)硪黄斦剆ymfony window下的安裝 安裝時(shí)候出現(xiàn)的問題以及解決方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09
PHP+Ajax實(shí)時(shí)自動(dòng)檢測是否聯(lián)網(wǎng)的方法
這篇文章主要介紹了PHP+Ajax實(shí)時(shí)自動(dòng)檢測是否聯(lián)網(wǎng)的方法,通過Ajax調(diào)用連接百度效果實(shí)現(xiàn)檢測網(wǎng)站是否聯(lián)網(wǎng)的功能,需要的朋友可以參考下2015-07-07

