贪心算法-分数背包问题(Python实现)
时间:2022-07-22
本文章向大家介绍贪心算法-分数背包问题(Python实现),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
import ioTool
def beibao(s,m,b):
bb = 0 # 现在的背包容量
beibaoA = [] #放入背包的东西
#循环的i的范围不能超过传过来的数量,并且背包的容量也不能超过预定的数量(例如:50,则只能小于等于50)
i = 0
while i < len(s) and bb<=b:
#判断是否已经放入背包了
if len(beibaoA) != 0:
#背包里现在没装,并且数量也不够
if beibaoA.__contains__(s[i]) == False and bb<b and (bb + s[i]) <= b:
beibaoA.append(s[i]) # 暂存
bb = bb + s[i]
elif beibaoA.__contains__(s[i]) == False and bb<b and (bb + s[i]) >= b:
num = b - bb
bb = bb + num
beibaoA.append(num)
else:
beibaoA.append(s[i]) # 暂存
bb = bb + s[i]
i += 1
return beibaoA,bb
if __name__ == '__main__':
# 价值 / 重量 价值比从高低排序,,没超过往里装,超过了就不装了。 分数背包
s = [ 10, 20, 30] # 重量
m = [60, 100, 120] # 价值
b = 50 # 背包总容量
k = 0
beibao = beibao(s,m,b)
print("背包中存入的:", beibao[0])
print("背包的容量:", beibao[1])
for i in range(len(s)):
print("从:商品",i,"取:",beibao[0][i])
ioTool.writeLine(beibao, "output2.txt")
结果
- 分享张戈博客自用的php网址在线转换二维码的API源码
- zabbix agentd客户端插件Shell一键自动安装脚本
- SendCloud邮件队列状态和已使用额度的Python监控脚本
- linux/scp命令报“bash: scp: command not found lost connection”错误的解决办法
- bat/cmd批处理连接SqlServer数据库查询脚本
- 一起用 HTML5 Canvas 做一个简单又骚气的粒子引擎
- 解决mstsc无法连接问题:由于没有远程桌面授权服务器可以提供许可证…
- Apache/Nginx伪静态规则匹配http://出现的问题与解决
- 微信文件微起底
- Go语言TCP Socket编程--1
- Go语言TCP Socket编程--2
- 服务器 数据库设计技巧--1
- CVE-2015-0235:Linux glibc高危漏洞的检测及修复方法
- zabbix监控在lnmp环境下编译安装小记
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法