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

PHP回溯法解決0-1背包問(wèn)題實(shí)例分析

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

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

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

<?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 );
  //測(cè)試輸出
  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;
    }
  }
?>

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

相關(guān)文章

  • zen cart新進(jìn)商品的隨機(jī)排序修改方法

    zen cart新進(jìn)商品的隨機(jī)排序修改方法

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

    PHP實(shí)現(xiàn)的數(shù)獨(dú)求解問(wèn)題示例

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

    PHP 之 寫(xiě)時(shí)復(fù)制介紹(Copy On Write)

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

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

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

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

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

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

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

    PHP操作文件方法問(wèn)答

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

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

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

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

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

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

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

最新評(píng)論

华宁县| 大同县| 濮阳市| 临清市| 盱眙县| 柳江县| 德钦县| 师宗县| 宽城| 海门市| 十堰市| 公安县| 苍山县| 达日县| 宝鸡市| 文昌市| 东城区| 荣昌县| 永胜县| 金乡县| 宁阳县| 南投市| 秀山| 偏关县| 海晏县| 中宁县| 诸暨市| 安塞县| 山东省| 双柏县| 葫芦岛市| 腾冲县| 鸡泽县| 武宁县| 杭锦旗| 积石山| 肇东市| 万盛区| 庆阳市| 隆化县| 通河县|