php解决01背包问题,PHP动态规划解决0-1背包问题实例分析_PHP教程
//这是我根据动态规划原理写的
// 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";
}
?>
php解决01背包问题,PHP动态规划解决0-1背包问题实例分析_PHP教程相关推荐
- 【动态规划】0/1背包问题
问题 H: [动态规划]0/1背包问题 时间限制: 1 Sec 内存限制: 64 MB 提交: 152 解决: 95 [提交] [状态] [讨论版] [命题人:admin] 题目描述 张琪曼和李旭 ...
- 动态规划的Matlab实现和实例分析
[原创]动态规划的Matlab实现和实例分析|MATLAB 数学统计与优化|MATLAB技术论坛 - Powered by Discuz! <Math model toolbox>(数学建 ...
- 动态规划之0/1背包问题(动态规划入门)
动态规划很早以前就接触过但是因为太晦涩难懂一下子到现在才开始真正的学习到其中的道理,0/1背包问题是动态规划的入门类问题 比较好理解 首先我们要知道动态规划是用于解决最优解的问题 它是一种思想而不是一 ...
- 【武汉理工大学计算机复试刷题】(C语言)动态规划求解0/1背包问题之求最大价值
文章目录 题目描述 思路分析 代码 运行情况 输入文件 运行结果 发现的问题 题目描述 一个旅行者有一个最多能装M公斤的背包,现在有n件物品,它们的重星分别是W1,W2, - Wn,它们的价值分别为C ...
- 动态规划问题以及诸多实例分析
首先先分析一个叫做"钢条切割"的问题,这个问题从递归开始导入,然后引入带备忘录的自顶向下方法,最后得到自底向上的动态规划的解法,发现所有的问题都可以遵循这样的解决方法.然后分析用递 ...
- 01背包问题(动态规划解决)
动态规划原理 动态规划的核心:填表 动态规划和分治法的相同点:把大问题拆分成小问题,再找大小问题间的递推关系.由最基本的小问题开始解决,逐渐解决大问题. 动态规划和分治法的不同点:分治法不会记忆中间的 ...
- matlab 背包问题动态规划,从01背包问题理解动态规划---初体验
这个问题有两种解法,动态规划和贪婪算法.本文仅涉及动态规划. 先不套用动态规划的具体定义,试着想,碰见这种题目,怎么解决? 首先想到的,一般是穷举法,一个一个地试,对于数目小的例子适用,如果容量增大, ...
- 三十四、动态规划解决01背包问题
一.动态规划算法介绍 动态规划算法的核心思想是:将大问题划分为小问题进行解决,从而一步一步获取最优解的处理算法. 动态规划算法与分治算法类似,其基本思想是将待求解的问题分解成若干个子问题,先求子问题, ...
- 0-1背包问题 动态规划java_C#使用动态规划解决0-1背包问题实例分析
// 利用动态规划解决0-1背包问题 using System; using System.Collections.Generic; using System.Linq; using System.T ...
最新文章
- GDPR:我们将如何对待你的数据?
- java mysql insert_MySQL中INSERT的一般用法
- 微信黑科技-推荐系统,一文带你看懂为什么微信推荐这么快?
- Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器
- php 处理表单里面的 单双引号
- LeetCode 1844. 将所有数字用字符替换
- 线程停止继续_线程不是你想中断就能中断
- FICO蓝图设计-专题方案-财务组织架构
- C++STL笔记(十):queue详解
- 使用临时表关联数据时效率低的问题
- response和request
- Android基础知识之智能指针:强指针和弱指针
- 缓冲区ByteBuffer简单说明
- Java设计模式--生成器模式
- gradle下载不下来依赖包_Gradle 下载依赖jar包及源码
- PROXMOX 开源虚拟服务器系统安装及配置
- 小可乐手机救砖+恢复通信录
- matlab 2016b caffe,请教:在Win7+VS 2013+Matlab R2016b上编译Caffe时遇到问题
- win10系统重装鼠标右键响应慢怎么办
- 网络的层级及各层级的作用
热门文章
- 【难题+重点】剑指offer——面试题40:数组中只出现一次的数字
- 2018阿里-研发工程师JAVA Software Engineer, Java
- Objective-C内存管理教程和原理剖析(三)
- 1029 C语言文法定义与C程序的推导过程
- window.location和document.location的区别分析
- 完全自定义TabBar(八)
- 学习Javascript闭包(Closure)(转载+理解心得)
- ie下的firebug
- 12、设计模式-结构型模式-外观模式
- centos7 jenkins 安装