Python基于回溯法解决01背包问题实例


Posted in Python onDecember 06, 2017

本文实例讲述了Python基于回溯法解决01背包问题。分享给大家供大家参考,具体如下:

同样的01背包问题,前面采用动态规划的方法,现在用回溯法解决。回溯法采用深度优先策略搜索问题的解,不多说,代码如下:

bestV=0
curW=0
curV=0
bestx=None
def backtrack(i):
  global bestV,curW,curV,x,bestx
  if i>=n:
    if bestV<curV:
      bestV=curV
      bestx=x[:]
  else:
    if curW+w[i]<=c:
      x[i]=True
      curW+=w[i]
      curV+=v[i]
      backtrack(i+1)
      curW-=w[i]
      curV-=v[i]
    x[i]=False
    backtrack(i+1)
if __name__=='__main__':
  n=5
  c=10
  w=[2,2,6,5,4]
  v=[6,3,5,4,6]
  x=[False for i in range(n)]
  backtrack(0)
  print(bestV)
  print(bestx)

运行结果如下:

Python基于回溯法解决01背包问题实例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
利用打码兔和超人打码自封装的打码类分享
Mar 16 Python
Python安装Numpy和matplotlib的方法(推荐)
Nov 02 Python
Python调用C语言的方法【基于ctypes模块】
Jan 22 Python
python opencv实现图片旋转矩形分割
Jul 26 Python
python定时按日期备份MySQL数据并压缩
Apr 19 Python
python中的协程深入理解
Jun 10 Python
浅析Windows 嵌入python解释器的过程
Jul 26 Python
利用anaconda作为python的依赖库管理方法
Aug 13 Python
Python try except异常捕获机制原理解析
Apr 18 Python
什么是python的id函数
Jun 11 Python
python简单利用字典破解zip文件口令
Sep 07 Python
flask框架中的cookie和session使用
Jan 31 Python
Python基于动态规划算法解决01背包问题实例
Dec 06 #Python
Python机器学习之决策树算法实例详解
Dec 06 #Python
快速入门python学习笔记
Dec 06 #Python
Python中django学习心得
Dec 06 #Python
Python标准库inspect的具体使用方法
Dec 06 #Python
读取本地json文件,解析json(实例讲解)
Dec 06 #Python
Python语言描述最大连续子序列和
Dec 05 #Python
You might like
日本收入最高的漫画家:海贼王作者版税年收入高达8.45亿元
2020/03/04 日漫
PHP中的魔术方法总结和使用实例
2015/05/11 PHP
PHP中把有符号整型转换为无符号整型方法
2015/05/27 PHP
Smarty foreach控制循环次数的一些方法
2015/07/01 PHP
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
PHP安装BCMath扩展的方法
2019/02/13 PHP
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
2017/01/21 Javascript
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
JS分页的实现(同步与异步)
2017/09/16 Javascript
angular6开发steps步骤条组件
2019/07/04 Javascript
基于JavaScript获取base64图片大小
2019/10/18 Javascript
微信小程序canvas分享海报功能
2019/10/31 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
Cython 三分钟入门教程
2009/09/17 Python
详解如何用OpenCV + Python 实现人脸识别
2017/10/20 Python
python3下载抖音视频的完整代码
2019/06/05 Python
python图片剪裁代码(图片按四个点坐标剪裁)
2020/03/10 Python
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
Python sklearn中的.fit与.predict的用法说明
2020/06/28 Python
巧用CSS3的calc()宽度计算做响应模式布局的方法
2018/03/22 HTML / CSS
浅析移动设备HTML5页面布局
2015/12/01 HTML / CSS
关于webview适配H5上传照片或者视频文件的方法
2020/11/04 HTML / CSS
日本著名的平价时尚女性购物网站:Fifth
2016/08/24 全球购物
电气自动化自荐信
2013/10/10 职场文书
单位门卫岗位职责
2013/12/20 职场文书
学生党员思想汇报
2013/12/28 职场文书
如何编写优秀的食品项目创业计划书
2014/01/23 职场文书
初中考试作弊检讨书
2014/02/01 职场文书
邮政竞聘演讲稿
2014/09/03 职场文书
pytorch中的model.eval()和BN层的使用
2021/05/22 Python
pnpm对npm及yarn降维打击详解
2022/08/05 Javascript