|
本文实例分析了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
希望本文所述对大家的php程序设计有所帮助。
您可能感兴趣的文章:用贪心法求解背包问题的解决方法关于背包问题的一些理解和应用PHP回溯法解决0-1背包问题实例分析PHP贪婪算法解决0-1背包问题实例分析C++动态规划之背包问题解决方法C#使用回溯法解决背包问题实例分析C#使用动态规划解决0-1背包问题实例分析C#用递归算法解决经典背包问题
|
|