js贪心算法---背包问题

		/** @param {Object} capacity 背包容量 6* @param {Object} weights  物品重量 [2,3,4]* @param {Object} values   物品价值  [3,4,5]*///贪心算法,只能算,可以分割的物品,如果不能分割物品,只能得到近似解,不分割物品,可以使用动态规划//1、计算每件商品的(价格/质量),即单位质量的价值//2、将单位质量价值排序//3、逐个取出console.log(tanx(6,[2,3,4],[3,4,5]));function tanx(capacity,weights,values){var list  = [];for(var i = 0,len = weights.length; i < len; i++){list.push({num:i+1,  //第几件商品w:weights[i], //重量v:values[i],rate:values[i]/weights[i]  });}list.sort(function(a,b){if(a.rate  > b.rate){return -1;}else{return 1;}});var selects = [];var total = 0;for(var i = 0,len = list.length; i < len; i++){var item = list[i];if(item['w'] <= capacity){selects.push({num:item.num,rate:1 ,       //完整的商品记录为1v:item.v,w:item.w});total = total + item.v;capacity = capacity - item.w;}else if(capacity > 0){//选取不完整的商品var rate = capacity/item['w'];var v = item.v*rate;selects.push({num:item.num,rate: rate,v:item.v*rate,w:item.w*rate});total = total + v;break;}else{break;}}return {selects,total}}

  

转载于:https://www.cnblogs.com/muamaker/p/9391333.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/397372.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring利用JDBCTemplate实现批量插入和返回id

1、先介绍一下java.sql.Connection接口提供的三个在执行插入语句后可取的自动生成的主键的方法&#xff1a; //第一个是 PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException; 其中autoGenerateKeys 有两个可选值&#xff1a;Stat…

jsp压缩html,使用HtmlCompressor压缩JSP编译的Html代码

HtmlCompressor 能够删除多余的HTML代码。它提供多种方法&#xff1a;删除无用的空行、删除注释以及删除无用的表格等等&#xff0c;简单而有效。在Java代码中可以这样使用&#xff1a;String html getHtml(); //需要处理的Html代码HtmlCompressor compressor new HtmlCompre…

LVS负载均衡(3)——LVS工作模式与工作原理

LVS介绍及工作原理1. LVS 介绍LVS,Linux Virtual Server 的简写&#xff0c;意即 Linux 虚拟服务器&#xff0c;是一个虚拟的服务器集群系统&#xff0c;可以在 UNIX/Linux 平台下实现负载均衡集群功能。文章&#xff1a;LVS项目介绍LVS集群体系结构LVS集群的IP负载均衡技术LVS…

保留凸性的方式:一个凸函数在一个随机变量上的期望仍然是凸函数

设函数 gg 是实数范围内的一个凸函数&#xff0c;DD 是一个随机变量&#xff0c; 那么函数 GEDg(y−D)GEDg(y−D) 仍然是一个凸函数。 证明&#xff1a;记 θθθθ, yy 与 yy 是任意两个数 ≥θG(y)θG(y)θEDg(y−D)θEDg(y−D)ED[θg(y−D)θ(gy−D)]ED[g(θyθy−D)]G(θyθ…

MyBatis入门(二)---一对一,一对多

一、创建数据库表 1.1、创建数据表同时插入数据 /* SQLyog Enterprise v12.09 (64 bit) MySQL - 5.6.27-log : Database - mybatis ********************************************************************* *//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE*/;/*!40014 SE…

零基础学Java的10个方法

2019独角兽企业重金招聘Python工程师标准>>> 版权声明&#xff1a;本文为北京尚学堂原创文章&#xff0c;未经允许不得转载。​ 零基础学Java只要方法得当&#xff0c;依然有机会学习好Java编程。 但作为初学者可以通过制定一些合理清晰的学习计划。 在帮你屡清楚思…

html 转换为cshtml,使用Html而不是csHtml

我想使用纯HTML页面而不是使用MVC .net的cshtml . 但是当我通过右键单击索引添加视图时&#xff0c;我只能看到两个选项 .public class HomeController : Controller{//// GET: /Home/public ActionResult Index(){return View();}}Cshtml(剃刀)Aspx论坛但仍无济于事 . 我仍然没…

scp windows 和 linux 远程复制 (双向)

一下命令在cmd中 从w -> l : scp D:\a.txt root192.168.2.113:/home/a 从l -> w: scp root192.168.2.113:/home/aaa d:/b.txt 按说在Linux中也可以&#xff0c;但是不知道怎么的只有在winodws上行&#xff0c;在linux上就会报 ssh: connect to host 192.168.2.157 port 2…

北京尚学堂|程序员的智慧

2019独角兽企业重金招聘Python工程师标准>>> 版权声明&#xff1a;本文为北京尚学堂原创文章&#xff0c;未经允许不得转载。 编程是一种创造性的工作&#xff0c;是一门艺术。精通任何一门艺术&#xff0c;都需要很多的练习和领悟&#xff0c;所以这里提出的“智慧…

翼城中学2021高考成绩查询入口,2021年临汾中考分数线查询(4)

临汾2021年中考分数线查询 2021临汾中考录取分数线 19年临汾中考各校录取分数线 临汾各高中录取分数线 临汾2021中考录取线查询 中考信息网提供2021临汾中考分数线查询信息。临汾中考录取分数线预计7月初公布&#xff0c;届时考生可登陆临汾招生考试网官网查看分数线情况。2…

JSP EL表达式 param、paramValues的使用

JSP EL表达式 param、paramValues的使用&#xff1a; <% page language"java" import"java.util.*" pageEncoding"UTF-8"%> <%String path request.getContextPath();String basePath request.getScheme() "://" request…

配置Tomcat使用HTTP/2

转自&#xff1a; https://zhuanlan.zhihu.com/p/21349186 前情提要&#xff1a; Tomcat高效响应的秘密(一) Sendfile与Gzip Tomcat高效响应的秘密(二) keep alive 前面高效响应的两篇&#xff0c;我们分析了Sendfile的特性以及HTTP1.1的keep-alive特性&#xff0c;基于这些功…

asp.net razor html,从控制台应用程序中的ASP.NET Razor模板生成HTML的当前最佳解决方案是什么?...

ServiceStack是用于呈现Razor视图页面的另一个选项。 尽管它已针对集成到ASP.NET或HttpListener Web Host中进行了优化(并提供了用于在目录中自动发现和注册视图页面&#xff0c;即时重新编译修改后的页面等的API)&#xff0c;但它还支持静态生成视图页面 &#xff1a;var razo…

通过NSNotification来监听键盘弹出和弹回

在通知中心建立一个广播来监听键盘的弹出和弹回&#xff0c;在监听事件中加入触发事件的一些操作。 [[NSNotificationCenter defaultCenter]addObserver:self selector:selector(keyboardWillChange:) name:UIKeyboardWillChangeFrameNotification object:nil];[[NSNotificatio…

Xcode缓存数据清除

1. 移除 APP 打包的ipa历史版本(Archives) 不可恢复&#xff0c;就是你打的包&#xff0c;如果需要dysm文件&#xff0c;及时备份 路径&#xff1a;~/Library/Developer/Xcode/Archives 2. 移除对旧设备的支持 可重新生成&#xff1b;再连接旧设备调试时&#xff0c;会重新自动…

IT综合学习网站收集

最近整理了一下曾经使用过的IT从入门到广泛的综合类基础学习网站&#xff0c;记录下来&#xff0c;以便初学者使用&#xff1a; 1.http://www.w3school.com.cn/ 中文版基础在线学习平台 2.http://www.runoob.com/ 中文版基础在线学习平台&#xff08;和W3类似&#xff09; 3.h…

电大计算机网络网考,电大计算机网络(本)学习周期01任务A_0009答案

一、单项选择题(共 20 道试题&#xff0c;共 60 分。)1. ( )和数据通信是计算机网络最基本的两大功能。A. 资源共享B. 病毒管理C. 用户管理D. 站点管理2. 计算机网络系统是由通信子网和( )子网组成的。A. 资源B. 数字C. 信息D. 模拟3. 网络资源子网负责( )。A. 数据通信B. 数字…

mac安装gdb及为gdb进行代码签名

1. 安装gdb GDB作为一个强大的c/c调试工具&#xff0c;一直是程序猿们的良好伴侣&#xff0c;但转到Mac os才发现竟然没有默认安装&#xff0c;所幸还有强大的homebrew工具&#xff1a; brew install homebrew/dupes/gdb然后就是漫长的等待编译安装时间了&#xff0c;安装完成后…

Python学习---Django的基础操作180116

Django创建数据库操作 django流程之model实例 settigs.py&#xff1a;更改Django2.0.1的配置&#xff0c;更新为之前的路径配置 DIRS: [os.path.join(BASE_DIR, templates)], # 设置templates的路径为Django以前版本 # DIRS: [], # 注释掉该行&#xff0c;此为Django 2.0…

PO、VO、DAO、BO、POJO

一、PO :(persistant object )&#xff0c;持久对象 可以看成是与数据库中的表相映射的java对象。使用Hibernate来生成PO是不错的选择。二、VO :(value object) &#xff0c;值对象通常用于业务层之间的数据传递&#xff0c;和PO一样也是仅仅包含数据而已。但应是抽象出的业务对…