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 用户登录验证的小例子
Mar 06 Python
Python实现分割文件及合并文件的方法
Jul 10 Python
批量获取及验证HTTP代理的Python脚本
Apr 23 Python
python函数中return后的语句一定不会执行吗?
Jul 06 Python
对Python中创建进程的两种方式以及进程池详解
Jan 14 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
Mar 11 Python
Python3实现的旋转矩阵图像算法示例
Apr 03 Python
PyTorch 解决Dataset和Dataloader遇到的问题
Jan 08 Python
深度学习入门之Pytorch 数据增强的实现
Feb 26 Python
python使用opencv resize图像不进行插值的操作
Jul 05 Python
Django跨域请求原理及实现代码
Nov 14 Python
Python项目打包成二进制的方法
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
基于jQuery替换table中的内容并显示进度条的代码
2011/08/02 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
关于webpack代码拆分的解析
2017/07/20 Javascript
seaJs使用心得之exports与module.exports的区别实例分析
2017/10/13 Javascript
echarts鼠标覆盖高亮显示节点及关系名称详解
2018/03/17 Javascript
微信小程序用户信息encryptedData详解
2018/08/24 Javascript
对vux点击事件的优化详解
2018/08/28 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
Node.js 获取微信JS-SDK CONFIG的方法示例
2019/05/21 Javascript
IDEA安装vue插件图文详解
2019/09/26 Javascript
js实现坦克移动小游戏
2019/10/28 Javascript
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
Vue用mixin合并重复代码的实现
2020/11/27 Vue.js
[02:33]DOTA2英雄基础教程 司夜刺客
2013/12/04 DOTA
[03:37]2015国际邀请赛第四日现场精彩集锦
2015/08/08 DOTA
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
2015/03/30 Python
Python读取图片属性信息的实现方法
2016/09/11 Python
Window 64位下python3.6.2环境搭建图文教程
2018/09/19 Python
python 读取鼠标点击坐标的实例
2018/12/29 Python
Win系统PyQt5安装和使用教程
2019/12/25 Python
基于Python共轭梯度法与最速下降法之间的对比
2020/04/02 Python
Python实现验证码识别
2020/06/15 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
促销活动策划方案
2014/01/12 职场文书
《圆明园的毁灭》教学反思
2014/02/28 职场文书
卖房协议书
2014/04/11 职场文书
市场总监岗位职责
2015/02/11 职场文书
父亲节活动总结
2015/02/12 职场文书
500字小学生检讨书
2015/02/19 职场文书
房地产置业顾问岗位职责
2015/04/11 职场文书
在校证明模板
2015/06/17 职场文书
2016年寒假政治学习心得体会
2015/10/09 职场文书
Python如何使用logging为Flask增加logid
2021/03/30 Python
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript
MySql如何将查询的出来的字段进行转换
2022/06/14 MySQL