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-04PHP屏蔽蜘蛛訪問代碼及常用搜索引擎的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-10php 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-09PHP+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