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获得linux下所有挂载点(mount points)的方法
Apr 29 Python
十条建议帮你提高Python编程效率
Feb 16 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
May 18 Python
解决Djang2.0.1中的reverse导入失败的问题
Aug 16 Python
JupyterNotebook设置Python环境的方法步骤
Dec 03 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
Feb 13 Python
解决 jupyter notebook 回车换两行问题
Apr 15 Python
关于Keras Dense层整理
May 21 Python
Python 捕获代码中所有异常的方法
Aug 03 Python
如何完美的建立一个python项目
Oct 09 Python
使用OpenCV校准鱼眼镜头的方法
Nov 26 Python
python获取淘宝服务器时间的代码示例
Apr 22 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
ThinkPHP文件上传实例教程
2014/08/22 PHP
PHP5.3安装Zend Guard Loader图文教程
2014/09/29 PHP
Yii2.0实现生成二维码功能实例
2017/10/24 PHP
PHP 8新特性简介
2020/08/18 PHP
php判断IP地址是否在多个IP段内
2020/08/18 PHP
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
实例分析javascript中的call()和apply()方法
2014/11/28 Javascript
node.js中使用socket.io的方法
2014/12/15 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
实例详解angularjs和ajax的结合使用
2015/10/22 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
nodejs搭建本地服务器并访问文件的方法
2017/03/03 NodeJs
js中变量的连续赋值(实例讲解)
2017/07/08 Javascript
使用jquery Ajax实现上传附件功能
2018/10/23 jQuery
Vue CLI4 Vue.config.js标准配置(最全注释)
2020/06/05 Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
2020/08/05 Javascript
python追加元素到列表的方法
2015/07/28 Python
Python的网络编程库Gevent的安装及使用技巧
2016/06/24 Python
Python简单网络编程示例【客户端与服务端】
2017/05/26 Python
Python编程把二叉树打印成多行代码
2018/01/04 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
python 调用钉钉机器人的方法
2019/02/20 Python
Python+redis通过限流保护高并发系统
2020/04/15 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
2020/06/27 Python
python实现图片转字符画的完整代码
2021/02/21 Python
真正的英国宝藏:Mappin & Webb
2019/05/05 全球购物
英国婴儿产品专家:Samuel Johnston
2020/04/20 全球购物
生产文员岗位职责
2014/04/05 职场文书
业务内勤岗位职责
2014/04/30 职场文书
会计求职自荐信
2015/03/26 职场文书
忠犬八公的故事观后感
2015/06/05 职场文书
信仰纪录片观后感
2015/06/08 职场文书
军事理论课感想
2015/08/11 职场文书
因个人工作失误检讨书
2019/06/21 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书