日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php 0-1,PHP 动态解决0-1背包问题

發布時間:2023/12/15 php 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 0-1,PHP 动态解决0-1背包问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這篇文章主要為大家詳細介紹了PHP 動態解決0-1背包問題,具有一定的參考價值,可以用來參考一下。

對PHP動態規劃解決0-1背包問題感興趣的小伙伴,下面一起跟隨512筆記的小編兩巴掌來看看吧!

背包問題描述:一個承受最大重量為W的背包,現在有n個物品,每個物品重量為t, 每個物品的價值為v。

要使得這個背包重量最大(但不能超過W),同時又需要背包的價值最大。

/**

* PHP動態規劃解決0-1背包問題

*

* @param

* @arrange 512-筆記網: www.512Pic.com

**/

/**

*背包問題描述:一個承受最大重量為W的背包,現在有n個物品,每個物品重量為t, 每個物品的價值為v。

* 要使得這個背包重量最大(但不能超過W),同時又需要背包的價值最大。

*思路:定義一個二維數組,一維為物品數量(表示每個物品),二維是重量(不超過最大,這里是15),下面數組a,

* 動態規劃原理思想,max(opt(i-1,w),wi+opt(i-1,w-wi)) 當中最大值,

* opt(i-1,w-wi)指上一個最優解

*/

//這是我根據動態規劃原理寫的

// max(opt(i-1,w),wi+opt(i-1,w-wi))

//背包可以裝最大的重量

$w=15;

//這里有四件物品,每件物品的重量

$dx=array(3,4,5,6);

//每件物品的價值

$qz=array(8,7,4,9);

//定義一個數組

$a=array();

//初始化

for($i=0;$i<=15;$i++){ $a[0][$i]=0; }

for ($j=0;$j<=4;$j++){ $a[$j][0]=0; }

//opt(i-1,w),wi+opt(i-1,w-wi)

for ($j=1;$j<=4;$j++){

for($i=1;$i<=15;$i++){

$a[$j][$i]=$a[$j-1][$i];

//不大于最大的w=15

if($dx[$j-1]<=$w){

if(!isset($a[$j-1][$i-$dx[$j-1]])) continue;

//wi+opt(i-1,wi)

$tmp = $a[$j-1][$i-$dx[$j-1]]+$qz[$j-1];

//opt(i-1,w),wi+opt(i-1,w-wi) => 進行比較

if($tmp>$a[$j][$i]){

$a[$j][$i]=$tmp;

}

}

}

}

//打印這個數組,輸出最右角的值是可以最大價值的

for ($j=0;$j<=4;$j++){

for ($i=0;$i<=15;$i++){

echo $a[$j][$i]."/t";

} echo "/n";

}

/*** 來自512筆記(www.512pic.com) ***/

注:關于PHP 動態解決0-1背包問題的內容就先介紹到這里,更多相關文章的可以留意512筆記的其他信息。

關鍵詞:0-1背包

總結

以上是生活随笔為你收集整理的php 0-1,PHP 动态解决0-1背包问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。