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 相关文章推荐
Python3中的真除和Floor除法用法分析
Mar 16 Python
使用Python进行二进制文件读写的简单方法(推荐)
Sep 12 Python
在centos7中分布式部署pyspider
May 03 Python
django定期执行任务(实例讲解)
Nov 03 Python
Python学习之Anaconda的使用与配置方法
Jan 04 Python
python解析html提取数据,并生成word文档实例解析
Jan 22 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
Oct 11 Python
对python生成业务报表的实例详解
Feb 03 Python
WxPython建立批量录入框窗口
Feb 27 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
Jun 18 Python
Django之PopUp的具体实现方法
Aug 31 Python
Python读取YAML文件过程详解
Dec 30 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面向对象全攻略 (七) 继承性
2009/09/30 PHP
PHP数据库万能引擎类adodb配置使用以及实例集锦
2014/06/12 PHP
PHP输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
php提交post数组参数实例分析
2015/12/17 PHP
PHP实现找出链表中环的入口节点
2018/01/16 PHP
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
Dom在ajax技术中的作用说明
2010/10/25 Javascript
JS清除选择内容的方法
2015/01/29 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
js仿支付宝填写支付密码效果实现多方框输入密码
2016/03/09 Javascript
ajax跨域调用webservice的实现代码
2016/05/09 Javascript
灵活使用数组制作图片切换js实现
2016/07/28 Javascript
laydate.js日期时间选择插件
2017/01/04 Javascript
angularjs实现多张图片上传并预览功能
2017/02/24 Javascript
nodejs连接mysql数据库简单封装示例-mysql模块
2017/04/10 NodeJs
JS设置随机出现2个数字的实例代码
2017/07/19 Javascript
微信小程序switch组件使用详解
2018/01/31 Javascript
微信小程序上传多图到服务器并获取返回的路径
2019/05/05 Javascript
ES6 Iterator接口和for...of循环用法分析
2019/07/31 Javascript
Node 代理访问的实现
2019/09/19 Javascript
[01:02:38]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第二场 1月10日
2021/03/11 DOTA
python使用cStringIO实现临时内存文件访问的方法
2015/03/26 Python
python字典基本操作实例分析
2015/07/11 Python
Python配置mysql的教程(推荐)
2017/10/13 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
2018/11/07 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
如何利用python进行时间序列分析
2020/08/04 Python
pyqt5实现井字棋的示例代码
2020/12/07 Python
详解Canvas 实现炫丽的粒子运动效果(粒子生成文字)
2018/02/01 HTML / CSS
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
语文教育专业推荐信范文
2013/11/25 职场文书
大学班级学风建设方案
2014/05/01 职场文书
我的中国梦演讲稿400字
2014/08/19 职场文书
放飞梦想演讲稿800字
2014/08/26 职场文书
MySQL 使用SQL语句修改表名的实现
2021/04/07 MySQL
Django框架之路由用法
2022/06/10 Python