代码:

import numpy as np
c=10 #背包容量
w=[2,2,6,5,4] #物品重量
v=[5,3,5,4,6] #物品价值
flag =[0,0,0,0,0]
m=np.zeros([5,11],int) #用来保存 5x11的矩阵 for j in range(c+1): #初始化第一行
if(w[0]<=j):
m[0][j]=v[0]
flag[0] = 1
for i in range(1,5):
for j in range(c+1):
if (j<w[i]):
m[i][j]=m[i-1][j]
else:
if(m[i-1][j-w[i]]+v[i]>m[i-1][j]):
m[i][j] = m[i-1][j-w[i]]+v[i]
else:
m[i][j]=m[i-1][j]
print("最大价值为:",m[len(w)-1][c]) for i in range(4,0,-1):
if(m[i][c]>m[i-1][c]):
flag[i] = 1
c = c -w[i]
else:
flag[i] = 0
print("选择的物品有:",end = ' ')
for i in range(len(flag)):
if(flag[i]==1):
print(i,end =' ')

Python 实现0-1背包的更多相关文章

  1. 【Python】0/1背包、动态规划

    0/1背包问题:在能承受一定重量的背包中,放入重量不同,价值不同的几件物品,怎样放能让背包中物品的价值最大? 比如,有三件物品重量w,价值v分别是 w=[5,3,2] v=[9,7,8] 包的容量是5 ...

  2. python 2.4 与 python 3.0 的比较

    转过来,留着日后查看 [转自:]http://hi.baidu.com/autoitcn/blog/item/5f41973294b5fc4fac4b5f77.html python 2.4 与 py ...

  3. Python 3.0(一) 简介

    Python 3.0(一) 简介 [目录] 1.简介 2.python特点 3.安装 简介: Python是可以称得上即简单又功能强大的少有的语言中的一种.你将会惊喜地发现,专注于问题的解决方案而不是 ...

  4. poj1417 带权并查集+0/1背包

    题意:有一个岛上住着一些神和魔,并且已知神和魔的数量,现在已知神总是说真话,魔总是说假话,有 n 个询问,问某个神或魔(身份未知),问题是问某个是神还是魔,根据他们的回答,问是否能够确定哪些是神哪些是 ...

  5. HOWTO Use Python in the web — Python v3.0.1 documentation

    HOWTO Use Python in the web - Python v3.0.1 documentation mod_python¶ People coming from PHP often f ...

  6. P1417 烹调方案 (0/1背包+贪心)

    题目背景 由于你的帮助,火星只遭受了最小的损失.但gw懒得重建家园了,就造了一艘飞船飞向遥远的earth星.不过飞船飞到一半,gw发现了一个很严重的问题:肚子饿了~ gw还是会做饭的,于是拿出了储藏的 ...

  7. 洛谷 P1064 金明的预算方案 (有依赖的0/1背包)

    题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过NN元钱就行”. ...

  8. python 2.0 与 python 3.0 区别

    区别一:           python 2.0 : 源码不规范,重复代码很多 python 3.0 : 源码精简,美观.优雅 区别二: PY2 : 有整型int.长整型long. py3:只有整型 ...

  9. POJ 1636 Prison rearrangement DFS+0/1背包

    题目链接: id=1636">POJ 1636 Prison rearrangement Prison rearrangement Time Limit: 3000MS   Memor ...

  10. Python 3.0 写日志时出现乱码

    问题描述 python 3.0启用日志, 在pycharm里打开.log文件时中文都显示乱码. 根本原因 默认日志编译用的是GBK, 而python 3.0写程序用的是UTF-8. 所以.log文件中 ...

随机推荐

  1. leetcood学习笔记-58-最后一个单词的长度

    题目描述: 第一次解答: class Solution: def lengthOfLastWord(self, s: str) -> int: L=s.strip().split(" ...

  2. SQL Server中配置ODBC数据源

    单击“开始→windows系统→控制面板”,打开控制面板 单击“管理工具→ODBC数据源(32位)”打开ODBC数据源配置对话框 在数据源配置对话框中单击“系统DSN”选项卡下的“添加”按钮,创建数据 ...

  3. SQL Server 中根据字段值查询其所在的表、字段

    DECLARE @what varchar(800)SET @what='123456' --要搜索的字符串   DECLARE @sql varchar(8000)   DECLARE TableC ...

  4. thinkphp 应用模式

    应用模式提供了对核心框架进行改造的机会,可以让你的应用适应更多的环境和不同的要求. 每个应用模式有自己的模式定义文件,用于配置当前模式需要加载的核心文件和配置文件,以及别名定义.行为扩展定义等等.根据 ...

  5. Delphi exe实例之间传递cmd参数

    {Unit1.pas} 通过这个单元的Button,调用另一个实例: procedure TForm1.Button1Click(Sender: TObject); begin ShellExecut ...

  6. js函数中的apply()、call()、bind()方法

    ECMAScript中的函数是对象,因此函数也有属性和方法.每个函数都包含两个属性:length和prototype,且每个函数包含两个非继承而来的方法apply()和call().这两个方法的用途都 ...

  7. ionic-CSS:ionic 列表

    ylbtech-ionic-CSS:ionic 列表 1.返回顶部 1. ionic 列表 列表是一个应用广泛的界面元素,在所有移动app中几乎都会使用到. 列表可以是基本文字.按钮,开关,图标和缩略 ...

  8. npm ERR! missing script: dev 解决方案

    运行命令npm run dev 出现     npm ERR! missing script: dev  的错误 这是因为vue 版本问题,使用 npm run serve 来运行项目

  9. 基于Netty的RPC架构学习笔记(四):netty线程模型源码分析(一)

    文章目录 如何提高NIO的工作效率 举个

  10. 图文形式分享网页到facebook (要求:可以多个图片切换选择)

    分享网页到facebook的功能很常见,之前都是简单的网页分享,没遇到什么砍儿.这次的需求相比之前有一丁点特殊,就是图片得是用户指定选择的. fb文档地址:https://developers.fac ...