欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP貪婪算法解決0-1背包問題實例分析

 更新時間:2015年03月23日 11:19:47   作者:瘋狂一夏  
這篇文章主要介紹了PHP貪婪算法解決0-1背包問題,實例分析了貪婪算法的原理與背包問題的實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了PHP貪婪算法解決0-1背包問題的方法。分享給大家供大家參考。具體分析如下:

貪心算法解決0-1背包問題,全局最優(yōu)解通過局部最優(yōu)解來獲得!比動態(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>';
  }
}
//按照價格和重量比排序
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è)計有所幫助。

相關(guān)文章

  • PHP實現(xiàn)的通過參數(shù)生成MYSQL語句類完整實例

    PHP實現(xiàn)的通過參數(shù)生成MYSQL語句類完整實例

    這篇文章主要介紹了PHP實現(xiàn)的通過參數(shù)生成MYSQL語句類,結(jié)合完整實例形式分析了生成MYSQL語句類的實現(xiàn)與使用技巧,需要的朋友可以參考下
    2016-04-04
  • PHP二分查找算法的實現(xiàn)方法示例

    PHP二分查找算法的實現(xiàn)方法示例

    這篇文章主要介紹了PHP二分查找算法的實現(xiàn)方法,簡單分析了二分查找算法的原理,并結(jié)合具體實例形式給出了php基于循環(huán)與遞歸兩種方法實現(xiàn)二分查找的相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • PHP屏蔽蜘蛛訪問代碼及常用搜索引擎的HTTP_USER_AGENT

    PHP屏蔽蜘蛛訪問代碼及常用搜索引擎的HTTP_USER_AGENT

    屏蔽蜘蛛相信每一位站長都不希望這樣做吧,因為蜘蛛的訪問就沒有用戶的瀏覽,直接會給我們帶來一定損失,不過也有例外,某些網(wǎng)站就不希望被蜘蛛爬行,接下來為你介紹屏蔽蜘蛛的php代碼
    2013-03-03
  • php操作xml入門之xml標(biāo)簽的屬性分析

    php操作xml入門之xml標(biāo)簽的屬性分析

    這篇文章主要介紹了php操作xml入門之xml標(biāo)簽的屬性,分析了xml標(biāo)簽的基本屬性與用法,需要的朋友可以參考下
    2015-01-01
  • 11個PHPer必須要了解的編程規(guī)范

    11個PHPer必須要了解的編程規(guī)范

    從設(shè)計之初,PHP被廣泛用于開發(fā)基于Web的應(yīng)用程序。 由于PHP是一種腳本語言,開發(fā)的時候必須遵守一些規(guī)范。
    2014-09-09
  • 如何直接訪問php實例對象中的private屬性詳解

    如何直接訪問php實例對象中的private屬性詳解

    這篇文章主要給大家介紹了關(guān)于如何直接訪問php實例對象中private屬性的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • php foreach 使用&(與運(yùn)算符)引用賦值要注意的問題

    php foreach 使用&(與運(yùn)算符)引用賦值要注意的問題

    foreach 通過在 $value 之前加上 & 很容易就能修改數(shù)組的單元,在 foreach 使用引用時要注意了。也可以在處理完后立即斷開引用關(guān)系,后面就不會有上述情況了。
    2010-02-02
  • 詳談symfony window下的安裝 安裝時候出現(xiàn)的問題以及解決方法

    詳談symfony window下的安裝 安裝時候出現(xiàn)的問題以及解決方法

    下面小編就為大家?guī)硪黄斦剆ymfony window下的安裝 安裝時候出現(xiàn)的問題以及解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • PHP+Ajax實時自動檢測是否聯(lián)網(wǎng)的方法

    PHP+Ajax實時自動檢測是否聯(lián)網(wǎng)的方法

    這篇文章主要介紹了PHP+Ajax實時自動檢測是否聯(lián)網(wǎng)的方法,通過Ajax調(diào)用連接百度效果實現(xiàn)檢測網(wǎng)站是否聯(lián)網(wǎng)的功能,需要的朋友可以參考下
    2015-07-07
  • php跨域檢測類允許部分域名訪問的示例詳解

    php跨域檢測類允許部分域名訪問的示例詳解

    PHP跨域檢測類是一種封裝了跨域檢測邏輯的PHP類,它可以用于在PHP應(yīng)用程序中檢測和處理跨域請求,以確保安全和正常的跨域通信,本文給出了示例給大家介紹php如何允許部分域名訪問,需要的朋友可以參考下
    2023-12-12

最新評論