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字符串替换示例
Apr 24 Python
Python手机号码归属地查询代码
May 04 Python
python 实现tar文件压缩解压的实例详解
Aug 20 Python
python线程池(threadpool)模块使用笔记详解
Nov 17 Python
使用numpy和PIL进行简单的图像处理方法
Jul 02 Python
python 对txt中每行内容进行批量替换的方法
Jul 11 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
Oct 24 Python
Python socket模块ftp传输文件过程解析
Nov 05 Python
python字符串判断密码强弱
Mar 18 Python
Python的控制结构之For、While、If循环问题
Jun 30 Python
浅谈keras中的keras.utils.to_categorical用法
Jul 02 Python
python 用Matplotlib作图中有多个Y轴
Nov 28 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
dedecms中常见问题修改方法总结
2007/03/21 PHP
php中使用接口实现工厂设计模式的代码
2012/06/17 PHP
深入PHP获取随机数字和字母的方法详解
2013/06/06 PHP
PHP register_shutdown_function()函数的使用示例
2015/06/23 PHP
PHP几个实用自定义函数小结
2016/01/25 PHP
PHP简单读取xml文件的方法示例
2017/04/20 PHP
解密效果
2006/06/23 Javascript
使用JavaScript和C#中获得referer
2014/11/14 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
2017/07/11 Javascript
浅谈JS函数节流防抖
2017/10/18 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
jQuery实现网页拼图游戏
2020/04/22 jQuery
vue 数据遍历筛选 过滤 排序的应用操作
2020/11/17 Javascript
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
2018/01/07 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
2019/06/19 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
postman和python mock测试过程图解
2020/02/22 Python
python小白学习包管理器pip安装
2020/06/09 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
Python实现王者荣耀自动刷金币的完整步骤
2021/01/22 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
Evisu官方网站:日本牛仔品牌,时尚街头设计风格
2016/12/30 全球购物
英国图书音像网站:Hive.co.uk(图书、电子书、DVD、蓝光、音乐CD等)
2017/10/16 全球购物
Myprotein瑞典官方网站:畅销欧洲英国运动营养品牌
2018/01/22 全球购物
美国健康和保健平台:healtop
2020/07/02 全球购物
Linux上比较文件的命令都有哪些
2013/09/28 面试题
煤矿班组长竞聘书
2014/03/31 职场文书
公司奖励通知
2015/04/21 职场文书
小学教师教育随笔
2015/08/14 职场文书
2015团员个人年度总结
2015/11/24 职场文书
Nginx设置日志打印post请求参数的方法
2021/03/31 Servers