本文实例讲述了JS基于贪心算法解决背包问题。分享给大家供大家参考,具体如下:

贪心算法:在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。

寻找最优解的过程,目的是得到当前最优解

部分背包问题:固定容积的背包能放入物品的总最大价值

物品 A B C D

价格 50 220 60 60

尺寸 5 20 10 12

比率 10 11 6 5

按比例降序尽可能多放入物品

function greedy(values, weights, capacity){

var returnValue = 0

var remainCapacity = capacity

var sortArray = []

values.map((cur, index) =>{

sortArray.push({

'value': values[index],

'weight': weights[index],

'ratio': values[index]/weights[index]

})

})

sortArray.sort(function(a, b){

return b.ratio > a.ratio

})

console.log(sortArray)

sortArray.map((cur,index) => {

var num = parseInt(remainCapacity/cur.weight)

console.log(num)

remainCapacity -= num*cur.weight

returnValue += num*cur.value

})

return returnValue

}

var items = ['A','B','C','D']

var values = [50,220,60,60]

var weights = [5,20,10,12]

var capacity = 32 //背包容积

greedy(values, weights, capacity) // 320

希望本文所述对大家JavaScript程序设计有所帮助。

背包问题 贪心算法 java_JS基于贪心算法解决背包问题示例相关推荐

  1. 背包问题 贪心算法 java_JS基于贪心算法解决背包问题

    前面我们分享了关于js使用贪心算法解决找零问题,本文我们接着为大家介绍JS基于贪心算法解决背包问题. 贪心算法:在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做 ...

  2. xgboost算法_基于XGBoost算法构建投资组合

    摘要 极端梯度提升 (eXtreme Gradient Boosting) 是一种基于决策树的集成机器学习方法,适用于分类和回归问题.其优点是速度快.效果好.能处理大规模数据.支持自定义损失函数等. ...

  3. burg算法 matlab,基于burg算法的谱估计研究及其matlab实现.doc

    基于burg算法的谱估计研究及其matlab实现 XX大学学院 毕业设计(论文) 相关资料 题目: 基于 其MATLAB实现 机电 系 电子信息工程 专业学 号: 学生姓名: 指导教师: (职称:讲 ...

  4. 【DA算法】基于DA算法的FIR滤波器的FPGA实现

    1.软件版本 quartusii 2.本算法理论知识 DA算法的主要特点是,巧妙地利用查找表将固定系数的MAC运算转化为查表操作,其运算速度不随系数和输入数据位数的增加而降低,而且相对直接实现乘法器而 ...

  5. 【有限马尔科夫链状态分解+Kosaraju 算法】基于Kosaraju 算法和可达矩阵的有限马尔科夫链状态分解

    有限马尔科夫链状态分解+Kosaraju 算法 1 实验内容 2 理论基础 3 题目分析 4 按常返性和互通性对状态空间进行分解算法流程 4.1 强连通性和强连通分量 4.2 基于有向图 Kosara ...

  6. 路径规划算法:基于樽海鞘算法的路径规划算法- 附代码

    路径规划算法:基于樽海鞘优化的路径规划算法- 附代码 文章目录 路径规划算法:基于樽海鞘优化的路径规划算法- 附代码 1.算法原理 1.1 环境设定 1.2 约束条件 1.3 适应度函数 2.算法结果 ...

  7. 路径规划算法:基于蜻蜓算法的路径规划算法- 附代码

    路径规划算法:基于蜻蜓优化的路径规划算法- 附代码 文章目录 路径规划算法:基于蜻蜓优化的路径规划算法- 附代码 1.算法原理 1.1 环境设定 1.2 约束条件 1.3 适应度函数 2.算法结果 3 ...

  8. snm算法_基于SNM算法的大数据量中文商品清洗方法

    基于 SNM 算法的大数据量中文商品清洗方法 ∗ 张苗苗 苏 勇 [摘 要] 摘 要 SNM 算法即邻近排序算法,是英文数据清洗最常用的算法[ 1 ] . 目前为止,因为中英文语义的差异等一些原因,中 ...

  9. snm算法_基于SNM算法的大数据量中文地址清洗方法-计算机工程与应用.PDF

    基于SNM算法的大数据量中文地址清洗方法-计算机工程与应用 108 2014 ,50(5 ) Computer Engineering and Applications 计算机工程与应用 基于SNM ...

最新文章

  1. DenthDepth:深度估计(三维场景构建)——单目视觉挑战激光雷达
  2. python基础一循环
  3. python def函数报错详解_python所有内置函数的定义详解
  4. 【ARM】ARM其它指令
  5. html--form表单常用操作
  6. Google docs/slides的下载
  7. 简易计算器--带小数点--单片机课程设计
  8. 快速开发项目的前端框架主要针对后台界面
  9. 无人机基础知识:多旋翼无人机各模式控制框图
  10. 新品推荐∣平行光源OPT-PL系列
  11. 证明:hitting set是NP完全问题
  12. cpu排行计算机专业,cpu性能天梯图,详细教您电脑cpu排行榜
  13. Centos 8 搭建samba文件共享服务(超详细)
  14. Brave Game(bash game-巴什博弈)
  15. Overview Screen-Android 6.0开发者文档
  16. [PHP]进阶教程:将wav文件转换成图像文件并在页面中显示
  17. Python matplotlib 堆叠图
  18. K3 CLOUD服务与费用类物料
  19. 基于【GIS地理信息+实景三维】在一体化地质灾害监测预警平台中的核心应用
  20. 静态检查(static checking)

热门文章

  1. 递归递推区别分析与例题总结
  2. 安卓代码怎么设置省电模式_Android 5.0开启省电模式的方法 Android 5.0省电介绍
  3. 程序员是如何通过一张图片获取GPS信息的?简单得不敢相信
  4. xsens系列MTI-670使用时出现的问题
  5. dell服务电话(dell400客服电话)
  6. 美食杰----菜谱大全
  7. Visual C++网络编程经典案例详解 第8章 网络文件传输 使用api函数操作文件 操作文件 FlushFileBuffers函数
  8. 笔记本电脑忘记开锁密码怎么办?(超详细教程,只适用于2013年以后生产的笔记本电脑,且为win10操作系统)
  9. 铁道部掌上12306手机客户端预计11月底推出-铁道部-掌上12306-手机客户端
  10. wow登录游戏服务器未响应,《魔兽世界》游戏常见问题解决方案 卡蓝条解决方案...