根据自己的理解,用python写了背包问题的求解:

问题描述:给定一组物品,每种物品都有自己的重量和价格,在限定的重量内,如何选择才能使物品的总价最高?

1.使用动态规划的思想来解决背包问题

解决思路:动态规划,对每一件物品遍历背包容量,当背包可容纳值大于等于当前物品,与之前已放进去的物品所得价值进行对比,考虑是否需要置换。

代码如下:

#m为包载重量,n为物品数,w为物品的重量,v为物品的价值
def bag(m,n,w,v):#置零表示初始状态value = [[0 for i in range(m+1)] for j in range(n+1)]for i in range(1,n+1):for j in range(1,m+1):value[i][j] = value[i-1][j]if j >= w[i-1] and value[i-1][j-w[i-1]] + v[i-1]:value[i][j] = value[i-1][j-w[i-1]] + v[i-1]return valuedef show(n, m, w, value):print('最大价值为:', value[n][m])x = [False for i in range(n)]j = mfor i in range(n, 0, -1):if value[i][j] > value[i - 1][j]:x[i - 1] = Truej -= w[i - 1]print('背包中所装物品为:')for i in range(n):if x[i]:print('第', i+1, '个,', end='')
if __name__ == '__main__':n = 6  #物品的数量,m = 5 #书包能承受的重量,w = [2, 2, 3, 1, 5, 2] #每个物品的重量,v = [2, 3, 1, 5, 4, 3] #每个物品的价值value = bag(m,n,w,v)show(n,m,w,value)

背包问题 python实现相关推荐

  1. 0-1背包问题python实现

    0-1背包问题 ACWings题目链接:https://www.acwing.com/problem/content/2/ 不会的小伙伴可以看一下视频:https://www.bilibili.com ...

  2. 背包问题 python 背包九讲

    基础:01背包 t,m=list(map(int,input().split())) baowu=[None] ditu=[[0]*(t+1) for _ in range(m+1)] for i i ...

  3. python 完全背包问题_动态规划——背包问题python实现(01背包、完全背包、多重背包)...

    参考: 描述: 有N件物品和一个容量为V的背包. 第i件物品的体积是vi,价值是wi. 求解将哪些物品装入背包,可使这些物品的总体积不超过背包流量,且总价值最大. 二维动态规划 f[i][j] 表示只 ...

  4. 【算法】动态规划 背包问题 python

    博主根据老师讲义,自己手撸代码,若有错误,多谢指出.直接上代码 目录 0 讲义 问题定义    子问题划分( 备忘录函数   标记函数) 举个栗子 1 代码 1.1 code:背包问题 1.2 cod ...

  5. python多重背包_多重背包问题(python实现),动态规划

    多重背包问题 感谢这些朋友们的文章,给了我很大启发: https://blog.csdn.net/songyunli1111/article/details/94778914 https://blog ...

  6. 01背包问题python实现

    可以记录路径,有时间再完善 # -*- coding:utf-8 -*- def bag(n, c, w, v):res = [[0 for j in range(c + 1)] for i in r ...

  7. dp 动态规划 01背包问题 Python

    参考学习网址: https://www.bilibili.com/video/av33930433?from=search&seid=10637513335818789097 https:// ...

  8. python背包问题

    背包问题可以分为:01背包 和 完全背包问题. 简要概括: 01背包:每种物品只能拿一次或者不拿. 完全背包:每种物品可以拿无限次. 01背包: import numpy as np weight=[ ...

  9. Python检查一组数据是否能构成和谐集

    封面图片:<Python程序设计实验指导书>(ISBN:9787302525790),董付国,清华大学出版社 图书详情(京东): 本书81个实验项目可与董付国老师的<Python程序 ...

最新文章

  1. python 动画场景_Python GUI教程(十五):在PyQt5中使用动画
  2. oracle vm virtualbox如何设置u盘启动_电脑自主U盘装机 如何设置U盘启动
  3. Spyder导入已有文件夹
  4. 面试lua笔试题各种坑
  5. SQL Server存储过程的基本概念以及语法【转】
  6. 两种大小端判断的方式
  7. JSON Schema
  8. 决策树(十)--GBDT及OpenCV源码分析
  9. Windows和linux(ubuntu)互传文件简便快捷的方法
  10. 1458: 移动距离(暴力模拟)
  11. 如何用常量代替session_如何用Python代替Visual Basic应用程序并节省了很多时间
  12. Citrix XenApp/XenDesktop版本正确选择
  13. params.c:Parameter() - Ignoring badly formed line in configuration file: ignore errors 解决方法
  14. wkhtmltox使用(html转pdf或图片)
  15. 2019大学生电子设计竞赛
  16. QQ等级计算方法及图标
  17. Ubuntu18.04将QT应用设计为开机自启
  18. linux下,matplotlib遇到的相关问题以及解决方法
  19. c#获取word文件页数、字数
  20. 危机公关中有哪些经典的失败案例?

热门文章

  1. 基于腾讯x5开源库,提高webView开发效率
  2. Echarts 极坐标系下的多色柱状图
  3. 华为手机怎么使用分屏_安卓7.0分屏怎么设置 安卓7.0分屏怎么使用【详解】
  4. python爬取学校新闻_Python抓取学院新闻报告
  5. i7 12700KF参数 酷睿i712700KF什么水平i7 12700KF核显相当于什么显卡
  6. 一文带你读懂异常检测(更新中)
  7. TeamViewer文件传输怎么用?
  8. R与RStudio安装与学习(一)
  9. 如何停止重启启动Redis服务
  10. DSP28335 Mcbsp SPI实现软件片选