PHP动态规划解决0-1背包问题实例分析
发布时间:2020-12-12 20:47:02 所属栏目:PHP教程 来源:网络整理
导读:本文实例分析了PHP动态规划解决0-1背包问题。供大家参考研究。具体分析如下: 背包问题描述:一个承受最大重量为W的背包,现在有n个物品,每个物品重量为t,每个物品的价值为v。要使得这个背包重量最大(但不能超过W),同时又需要背包的价值最大。 思路:
本文实例分析了PHP动态规划解决0-1背包问题。分享给大家供大家参考。具体分析如下: 背包问题描述:一个承受最大重量为W的背包,现在有n个物品,每个物品重量为t,每个物品的价值为v。 要使得这个背包重量最大(但不能超过W),同时又需要背包的价值最大。 思路:定义一个二维数组,一维为物品数量(表示每个物品),二维是重量(不超过最大,这里是15),下面数组a, 动态规划原理思想,max(opt(i-1,w),wi+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";
}
?>
希望本文所述对大家的php程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |