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 相关文章推荐
python通过exifread模块获得图片exif信息的方法
Mar 16 Python
python获取指定网页上所有超链接的方法
Apr 04 Python
利用Python获取赶集网招聘信息前篇
Apr 18 Python
Python实现自动上京东抢手机
Feb 06 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
Apr 09 Python
NumPy.npy与pandas DataFrame的实例讲解
Jul 09 Python
python 3.7.0 安装配置方法图文教程
Aug 27 Python
Python 迭代,for...in遍历,迭代原理与应用示例
Oct 12 Python
解决pycharm同一目录下无法import其他文件
Feb 12 Python
使用python自动追踪你的快递(物流推送邮箱)
Mar 17 Python
Python如何把Spark数据写入ElasticSearch
Apr 18 Python
python删除某个目录文件夹的方法
May 26 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
一步一步学习PHP(5) 类和对象
2010/02/16 PHP
php switch语句多个值匹配同一代码块的实现
2014/03/03 PHP
php批量删除超链接的实现方法
2015/10/19 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法
2019/10/12 PHP
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
2009/05/21 Javascript
JS 的应用开发初探(mootools)
2009/12/19 Javascript
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
javascript学习笔记(八) js内置对象
2012/06/19 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
浅谈Javascript实现继承的方法
2015/07/06 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
2015/07/27 Javascript
js实现网页多级级联菜单代码
2015/08/20 Javascript
详解Javascript中的Object对象
2016/02/28 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
jquery插件ContextMenu设置右键菜单
2017/03/13 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
layui-table表复选框勾选的所有行数据获取的例子
2019/09/13 Javascript
使用React-Router实现前端路由鉴权的示例代码
2020/07/26 Javascript
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
Python函数中的函数(闭包)用法实例
2016/03/15 Python
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
Python求解排列中的逆序数个数实例
2020/05/03 Python
Python的历史与优缺点整理
2020/05/26 Python
pyx文件 生成pyd 文件用于 cython调用的实现
2021/03/04 Python
Html5跳转到APP指定页面的实现
2020/01/14 HTML / CSS
世界上最大的家庭自动化公司:Smarthome
2017/12/20 全球购物
What is EJB
2016/07/22 面试题
物业公司采购员岗位职责
2013/12/31 职场文书
村党支部书记四风问题个人对照检查材料思想汇报
2014/10/06 职场文书
简单的辞职信模板
2015/05/12 职场文书
朝花夕拾读书笔记
2015/06/29 职场文书
OpenCV3.3+Python3.6实现图片高斯模糊
2021/05/18 Python