最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP回溯法解決0-1背包問題實例分析

 更新時間:2015年03月23日 11:03:34   作者:瘋狂一夏  
這篇文章主要介紹了PHP回溯法解決0-1背包問題,實例分析了php回溯法解決背包問題的技巧,具有一定參考借鑒價值,需要的朋友可以參考下

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

這段代碼是根據(jù)《軟件設(shè)計師》教程的偽代碼寫的;
最麻煩的不是偽代碼改成php,而是數(shù)組下標從0開始,及相應(yīng)的下標判斷問題;
帶著調(diào)試輸出一塊寫上

<?php
  $v_arr = array(11,21,31,33,43,53,55,65);
  $w_arr = array(1,11,21,23,33,43,45,55);
  $n = count($w_arr );
  //測試輸出
  var_dump(bknap1(110));
//var_dump(bound(139,89,7,110));
  function bound($v,$w,$k,$W_total){
    global $v_arr,$w_arr,$n;
    $b = $v;
    $c = $w;
//var_dump($W_total);var_dump($n);var_dump($k);var_dump($v);var_dump($w);
//die;
    for($i=$k+1;$i<$n;$i++){
      $c = $c + $w_arr[$i];
      //var_dump($W_total);var_dump($c);
      if($c<$W_total)
        $b += $v_arr[$i];
      else{
//var_dump((1-($c-$W_total)/$w_arr[$i])*$v_arr[$i]);
        $b = $b+(1-($c-$W_total)/$w_arr[$i])*$v_arr[$i];
        return $b; 
      }
    }
    /*var_dump('------bound head');
    var_dump($k);
    var_dump($b);
    var_dump('------bound end');*/
    return $b; 
  }
  function bknap1($W_total){
    global $v_arr,$w_arr,$n;
    $cw = $cp = 0;
    $k = 0;
    $fp = -1;
    while(true){
      while($k<$n && $cw+$w_arr[$k]<=$W_total){
        $cw += $w_arr[$k];
        $cp += $v_arr[$k];
        $Y_arr[$k] = 1;
        $k +=1;
      }
//var_dump($cw);var_dump($cp);var_dump($Y_arr);var_dump($k);var_dump($n);
      if($k==$n){
        $fp = $cp;
        $fw = $cw;
        $k = $n-1;
        $X_arr = $Y_arr;
//bound($cp,$cw,$k,$W_total);
//var_dump(bound($cp,$cw,$k,$W_total),$fp,$k);die;
//var_dump($fp);var_dump($fw);var_dump($Y_arr);var_dump($k);var_dump($n);
      }else{
        $Y_arr[$k] = 0;
      }
//var_dump($Y_arr);var_dump($k);var_dump($n);//die;
//var_dump(bound($cp,$cw,$k,$W_total),$fp);die;
      while(bound($cp,$cw,$k,$W_total)<=$fp)
      {
        while($k>=0 && $Y_arr[$k]!=1){
          $k -= 1;
        }
        if($k<0)
        {
          return $X_arr;
        }
        var_dump($k);
        $Y_arr[$k] = 0;
        $cw -= $w_arr[$k];
        $cp -= $v_arr[$k];
      }
      $k += 1;
    }
  }
?>

希望本文所述對大家的php程序設(shè)計有所幫助。

相關(guān)文章

  • zen cart新進商品的隨機排序修改方法

    zen cart新進商品的隨機排序修改方法

    由于新進商品的數(shù)量可能比頁面上能顯示的數(shù)量多,所以采用的是隨機顯示的方式。如果想改為按時間順序顯示,可以按照radnows提供的 方法修改。(記住使用文件替代)
    2010-09-09
  • PHP實現(xiàn)的數(shù)獨求解問題示例

    PHP實現(xiàn)的數(shù)獨求解問題示例

    這篇文章主要介紹了PHP實現(xiàn)的數(shù)獨求解問題,涉及php數(shù)組與字符串的遍歷、比較、判斷、運算等相關(guān)操作技巧,需要的朋友可以參考下
    2017-04-04
  • PHP 之 寫時復制介紹(Copy On Write)

    PHP 之 寫時復制介紹(Copy On Write)

    很多時候,我們會因為一些術(shù)語而對其概念產(chǎn)生莫測高深的恐懼,而其實,他們的基本原理往往非常簡單。本小節(jié)將介紹PHP中寫時復制這種策略的實現(xiàn)
    2014-05-05
  • PHP實現(xiàn)采集抓取淘寶網(wǎng)單個商品信息

    PHP實現(xiàn)采集抓取淘寶網(wǎng)單個商品信息

    這篇文章主要介紹了PHP實現(xiàn)采集抓取淘寶網(wǎng)單個商品信息,本文是一種實現(xiàn)思路,使用file_get_contents函數(shù)實現(xiàn),并給出了采集正則,需要的朋友可以參考下
    2015-01-01
  • PHP+Mysql基于事務(wù)處理實現(xiàn)轉(zhuǎn)賬功能的方法

    PHP+Mysql基于事務(wù)處理實現(xiàn)轉(zhuǎn)賬功能的方法

    這篇文章主要介紹了PHP+Mysql基于事務(wù)處理實現(xiàn)轉(zhuǎn)賬功能的方法,實例分析了mysql事務(wù)處理的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • 利用PHP快速抓取音頻數(shù)據(jù)的方法詳解

    利用PHP快速抓取音頻數(shù)據(jù)的方法詳解

    這篇文章主要給大家介紹了如何利用PHP快速抓取音頻數(shù)據(jù),文中使用Dusk庫和PHP編寫的爬蟲程序,用于爬取海量的音頻數(shù)據(jù),有詳細的代碼示例供大家參考,需要的朋友可以參考下
    2023-10-10
  • PHP操作文件方法問答

    PHP操作文件方法問答

    PHP操作文件方法問答...
    2007-03-03
  • php使用socket簡單實現(xiàn)通信功能

    php使用socket簡單實現(xiàn)通信功能

    socket只不過是一個數(shù)據(jù)結(jié)構(gòu)。使用這個socket數(shù)據(jù)結(jié)構(gòu)去開始一個客戶端和服務(wù)器之間的會話。服務(wù)器是一直在監(jiān)聽準備產(chǎn)生一個新的會話。當一個客戶端連接服務(wù)器,它就打開服務(wù)器正在進行監(jiān)聽的一個端口進行會話
    2023-03-03
  • php 數(shù)組使用詳解 推薦

    php 數(shù)組使用詳解 推薦

    對于網(wǎng)頁編程來說,最重要的就是存取和讀寫數(shù)據(jù)了。存儲方式可能有很多種,可以是字符串、數(shù)組、文件的形式等,今天學習了數(shù)組,可以說是PHP的數(shù)據(jù)應(yīng)用中較重要的一種方式。
    2011-06-06
  • 功能強大的PHP發(fā)郵件類

    功能強大的PHP發(fā)郵件類

    這篇文章主要為大家詳細介紹了功能強大的PHP發(fā)郵件類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08

最新評論

新巴尔虎右旗| 伽师县| 务川| 昭平县| 江川县| 胶州市| 栾川县| 中山市| 天峻县| 龙胜| 库伦旗| 安远县| 博白县| 凤山市| 台中县| 治县。| 南通市| 宁海县| 濮阳市| 敦煌市| 萨迦县| 龙州县| 建水县| 扎囊县| 南召县| 滦南县| 和政县| 兖州市| 舟山市| 工布江达县| 紫金县| 社会| 双鸭山市| 金寨县| 尼木县| 宜阳县| 吉木萨尔县| 古交市| 新余市| 获嘉县| 临沧市|