这篇文章主要为大家详细介绍了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背包问题相关推荐

  1. ASP.NET Core 3.0中使用动态控制器路由

    原文:Dynamic controller routing in ASP.NET Core 3.0 作者:Filip W 译文:https://www.cnblogs.com/lwqlun/p/114 ...

  2. android 7.0原生动态,Android7.0适配教程,心得

    Android7.0发布已经有一个多月了,Android7.0在给用户带来一些新的特性的同时,也给开发者带来了新的挑战,这几天我将应用适配到Android7.0,其中也遇到了不少问题也踩了一些坑,在这 ...

  3. 原创安卓手机QQ7.0登录界面动态背景视频实现方案

    qq7.0登录界面动态背景实现 qq7.0登录界面动态视频背景实现 android动态视频背景 android动态背景 分析qq7.0: 视频在打开登录界面就开始播放 了,而且期间无黑屏 而且是循环播 ...

  4. PA 2.0 中的动态类型安全查询

    JPA 2.0 中的动态类型安全查询 如何通过 Criteria API 构建动态查询并减少运行时失败 如果编译器能够对查询执行语法正确性检查,那么对于 Java 对象而言该查询就是类型安全的.Jav ...

  5. C语言动态规划法解决0/1背包问题(详细解答)

    动态规划法解决0/1背包问题(详细解答) 首先让我们回顾一下动态规划法的使用规则: 一..动态规划法的实现思路: 1.划分子问题:将元问题分解为若干个子问题,每一个子问题对应一个决策,并且子问题之间具 ...

  6. php 5/0,PHP 5.5.0 released.该怎么解决

    当前位置:我的异常网» PHP » PHP 5.5.0 released.该怎么解决 PHP 5.5.0 released.该怎么解决 www.myexceptions.net  网友分享于:2013 ...

  7. 完美解决:You are using pip version 9.0.1, however version 18.0 is available.

    问题描述: You are using pip version 9.0.1, however version 18.0 is available. You should consider upgrad ...

  8. npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! test_vue_0613@1.0.0 dev: 错误的解决方法

    npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! test_vue_0613@1.0.0 dev: 错误的解决方法 参考文章: (1)npm ERR ...

  9. 成功解决You are using pip version 9.0.3, however version 10.0.1 is available. You should consider upgr

    成功解决You are using pip version 9.0.3, however version 10.0.1 is available. You should consider upgr 目 ...

  10. 成功解决You are using pip version 9.0.1, however version 9.0.3 is available. You should consider upgra

    成功解决You are using pip version 9.0.1, however version 9.0.3 is available. You should consider upgra 目 ...

最新文章

  1. 什么是Python?前景怎么样?
  2. mongodb数据库淘汰_红帽彻底不跟MongoDB玩了,只认PostgreSQL
  3. 零基础python必背代码-零基础小白Python入门必看:通俗易懂,搞定深浅拷贝
  4. JZOJ 5192. 【NOI2017模拟7.2】容器
  5. ArcGIS下的多节点可达性分析
  6. Apache Tika:通用的内容分析工具
  7. python3-开发进阶-RESTful 软件架构风格
  8. 使用“ Row_Number”功能和WHILE循环创建滚动平均值报告
  9. 软考中级网络工程师笔记(一)
  10. pdf增强锐化软件_分享一波图像处理软件神器,绝对牛皮!!
  11. java 编写hl7标准接口_java – 需要解析HL7消息
  12. 《国际学术论文写作与发表》课后题
  13. oracle与r语言时间转换,R语言时间序列中时间年、月、季、日的处理操作
  14. 皮德常《c++程序设计教程》第一章第二题:编写一个程序,要求用户输入一年12个月每月的降雨总数,并用一个float数组存储。
  15. vue-loader was used without the corresponding plugin.
  16. android wifi 流程图_实现双wifi的方法及Android终端与流程
  17. java中的IO流(超全)(超详解)结合实例轻松掌握
  18. 2019双11猫晚直播技术详解(附演讲PDF)
  19. Python批量采集某网站高清壁纸,这下不用担心没壁纸换了
  20. keil设置c语言字体大小,Keil uVision4怎么放大字体?放大字体和关键字标注颜色方法介绍...

热门文章

  1. ASP.NET WebForm和Mvc开发的比较
  2. c#中通过win32API(FindWindowEx)查找控件句柄实例
  3. 对窗口过程函数WndProc()的一点理解
  4. 谷粒商城高级篇资料_一文搞定剑指offer面试题【分文别类篇】
  5. 利用OpenCvSharp处理图片并在winformd的pictureBox中显示
  6. java nio is例子,Java Buffer isDirect()用法及代码示例
  7. osgCallback的实现方法及原理
  8. Android开发之打开指定APP | 打开APP任意页面的方法
  9. key map 模糊查找_lua脚本语言批量删除模糊查询的key
  10. Android中的JSON解析方式:json; Gson ; Fastjson