当前位置:首页 > 日记 > 正文

JS基于贪心算法解决背包问题示例

JS基于贪心算法解决背包问题示例

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《JavaScript数据结构与算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》

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

相关文章

AI怎么给圆形添加模糊效果?

AI怎么给圆形添加模糊效果?

模糊,效果,电脑软件,AI,ai的图形想要显示的更加模糊,该怎么添加模糊效果呢?下面我们就来看看详细的教程。软件名称:Adobe Illustrator CS6 (AI cs6) 精简绿色中文版(32位+64位)软件大小:205MB更新时间:2014-05-111、为了清晰说明,此例中以一个圆…

excel 函数不显示计算结果的解决教

excel 函数不显示计算结果的解决教

函数,显示,教程,计算,电脑软件,  Excel中函数计算过后不显示计算结果具体该如何解决呢?下面是由小编分享的excel 函数不显示计算结果的解决教程,以供大家阅读和学习。excel 函数不显示计算结果的解决教程不显示结果解决步骤1:输入后显示了…

js字符串与Unicode编码互相转换

js字符串与Unicode编码互相转换

编码,转换,字符串,电脑软件,js,'好'.charCodeAt(0).toString(16)"597d"这段代码的意思是,把字符'好'转化成Unicode编码,看看charCodeAt()是怎么个意思charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 …

excel 公式符号解释

excel 公式符号解释

解释,公式,符号,电脑软件,excel,  在Excel中经常需要用到公式符号进行对公式的编辑,如果对公式符号不熟悉的话运用起公式来就不太熟练就会导致工作效率下降,或许有的朋友并不知道公式符号起如何的作用,如果不懂的朋友欢迎一起来研究讨论一番…

babel基本使用详解

babel基本使用详解

详解,电脑软件,babel,什么是babel?babel是一个强大的多用途js编译器 点击进入官网安装babelnpm install -g babel-cli npm install --save-dev babel-clibabel配置文件通过.babelrc来表示{ "presets" : [ ], "plugins" : [ ]}presets用…

ps人像精修之中性灰人像修图详细解

ps人像精修之中性灰人像修图详细解

人像,详细,电脑软件,ps,一说到中性灰,都感觉很高大上,其实搞懂后也不算难,就是一个图层的事儿,今天赶紧给大家带来了利用中性灰图层修容的教程,希望能够拯救大家干瘪的钱包。效果图软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1…

Illustrator绘制绚丽科技风格的蓝

Illustrator绘制绚丽科技风格的蓝

绘制,光线,绚丽,背景,风格,这篇教程是向分享Illustrator绘制绚丽科技风格的蓝色光线背景方法,教程制作出来的背景非常漂亮,而且难度不是很大,对于初学者来说是个很好的学习案例,一起来学习吧!步骤:教程结束,以上就是Illustrator绘制绚丽科技风格的…

Vue 2.5 Level E 发布了: 新功能特

Vue 2.5 Level E 发布了: 新功能特

新功能,特性,发布了,电脑软件,Vue,我们很高兴宣布 Vue 2.5 Level E 的发布!本次发布包括多个功能提升并且我们推荐你查看发布说明来获取完整详细信息。 在这篇文章中,我们将重点介绍一些更重要的的变化:更好的 TypeScript 集成,更好的错误处理…

excel中设置X轴为时间轴的方法exce

excel中设置X轴为时间轴的方法exce

设置,时间轴,方法,电脑软件,excel,  Excel中的时间轴具体该如何在X轴上设置呢?下面是由小编分享的excel中设置X轴为时间轴的方法,以供大家阅读和学习。excel中设置X轴为时间轴的方法设置时间轴步骤1:用excel 打开一个带有图表的数据表excel…

CDR怎么制作彩色涂鸦字效果?

CDR怎么制作彩色涂鸦字效果?

涂鸦,彩色,效果,电脑软件,CDR,有同学反映说,如果想要做带有颜色的涂鸦字要如何实现,通过前面的教程我们已经学会了使用CDR制作涂鸦字效果,相关教程可参阅CDR制作涂鸦字的方法,其实彩色涂鸦字不仅仅用到图框精确剪裁功能,前面的步骤都一样,除此之…

解读vue生成的文件目录结构及说明

解读vue生成的文件目录结构及说明

目录结构,文件,电脑软件,vue,利用node和npm环境我们可以很快的搭建一个vue环境。具体步骤,请看上一篇博客。搭建完成后,我们可以看到生成的文件夹中包括如下文件: 1、build文件夹是保存一些webpack的初始化配置。config文件夹保存一些项目初始…