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.pswp.cn/news/397372.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/397372.shtml
英文地址,請注明出處:http://en.pswp.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一樣也是僅僅包含數據而已。但應是抽象出的業務對…