当前位置: 首页 > news >正文

建设官方企业网站三种常用的网站设计软件

建设官方企业网站,三种常用的网站设计软件,成年学校培训班,扬州网站建设推广本节学习解决部分背包问题,部分背包代表物品可以按照一定比例被分割,而后放入背包内.这是十分经典的用贪心算法解决的问题. 问题描述: 给定一些物品,用matrix表示各个物品的属性,第一项表示物品的质量,第二项表示物品的总价值.现有一背包最大承重为M,试求如何让背包中所装物品…

本节学习解决部分背包问题,部分背包代表物品可以按照一定比例被分割,而后放入背包内.这是十分经典的用贪心算法解决的问题.

问题描述:

给定一些物品,用matrix表示各个物品的属性,第一项表示物品的质量,第二项表示物品的总价值.现有一背包最大承重为M,试求如何让背包中所装物品价值最高

思路解析:

既然背包中的物品可以被分割,而背包容量有限,要想让背包中所装物品价值最大,是要尽可能先装入单位价值大的物品,变量定义如下:

matrix变量:表示给定的各个物品的重量和价值

max变量:表示给定的背包所能承受的最大重量

re变量:表示背包物品的价值之和

re_list变量:表示各个物品放入的百分比,若将某一物品全部放入,则为1

完整代码如下:

def bag(matrix, max):# 初始化总价值为0re = 0# 创建一个列表,用于记录每个物品是否被选中,初始化为0re_list = [0 for _ in range(len(matrix))]# 根据物品的价值重量比对matrix进行降序排序matrix.sort(key=lambda x: x[1] / float(x[0]), reverse=True)for i in range(len(matrix)):# 如果当前物品的重量小于等于背包剩余容量if matrix[i][0] < max:# 将该物品的价值加到总价值中re += matrix[i][1]# 减少背包的剩余容量max -= matrix[i][0]# 标记该物品为已选中re_list[i] = 1else:# 如果物品重量大于背包剩余容量,只能选取部分物品# 计算能够选取的最大价值,并加到总价值中re += max * matrix[i][1] / float(matrix[i][0])# 标记选取了部分物品re_list[i] = max / float(matrix[i][0])break# 返回排序后的matrix,每个物品的选取状态列表re_list,以及总价值rereturn matrix, re_list, re

http://www.yayakq.cn/news/819675/

相关文章:

  • dede 网站地图模板htm拉新推广渠道
  • 新八建设集团网站网站流量依赖率
  • 邯山区建设局网站磁力在线搜索引擎
  • 网站建设与管理总结心得市场营销策划方案范文
  • 如何在招聘网站上做薪酬统计为什么手机网站跳转页面上
  • 大连哪里有手机自适应网站建设欧美化妆品网站模板下载
  • 建设网站遇到问题的解决方案沈阳关键词优化价格
  • wordpress 微信导航站学做网站要懂英语吗
  • opencart zencart网站建设百度关键词权重查询
  • 做动图的网站东莞优化公司首选3火星
  • 小说网站的阅读界面怎么做的html旅游网页设计代码
  • php 网站 手机版网站文章内容优化方案
  • 上海频道网站建设长春h5建站模板
  • 外贸做网站建设哪家好宁波seo关键词优化报价
  • 网站被人做跳转做外贸最好的网站
  • 天津微信网站开发外贸建站网站推广
  • 网站开发常用单词苏州专业网站建设开发公司
  • 网站建设术语wordpress 不同分类
  • 百度网站架构手机h5建网站
  • 网站建设前WordPress页面支持文件上传
  • 上海哪家网站建设好coupang入驻费用
  • 南充网站建设制作企业网站站内优化
  • 西安高端网站建设首选河南旅游网站建设
  • 建网站多少钱建个网站需要怎么做网站建设设计文档模板下载
  • 网站开发前景好吗电商网站建设要多少钱
  • 做网站要用写接口6雄安新区做网站公司
  • 网站做什么内容赚钱北京网站建设 爱牛
  • 自己做网站iis设置白山网站建设公司
  • 深圳前十网站扩广公司wordpress 所有函数
  • 电脑自带的做网站叫什么自适应网站建设价格