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分割和拼接字符串
Nov 01 Python
1 行 Python 代码快速实现 FTP 服务器
Jan 25 Python
tensorflow实现简单的卷积网络
May 24 Python
python实现图片文件批量重命名
Mar 23 Python
mac下pycharm设置python版本的图文教程
Jun 13 Python
实时获取Python的print输出流方法
Jan 07 Python
PyQt打开保存对话框的方法和使用详解
Feb 27 Python
如何用Python破解wifi密码过程详解
Jul 12 Python
python 引用传递和值传递详解(实参,形参)
Jun 05 Python
python实现批量命名照片
Jun 18 Python
Python 列表反转显示的四种方法
Nov 16 Python
python 三种方法实现对Excel表格的读写
Nov 19 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
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
如何设置mysql允许外网访问
2013/06/04 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
2020/04/20 PHP
PHP数组与字符串互相转换实例
2020/05/05 PHP
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
jquery validate 自定义验证方法介绍 日期验证
2014/02/27 Javascript
jQuery插件Tmpl的简单使用方法
2015/04/27 Javascript
jQuery实现的动态伸缩导航菜单实例
2015/05/07 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
2015/08/18 Javascript
jquery实现可关闭的倒计时广告特效代码
2015/09/02 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
2017/07/12 jQuery
详解React+Koa实现服务端渲染(SSR)
2018/05/23 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
浅析vue 函数配置项watch及函数 $watch 源码分享
2018/11/22 Javascript
node实现socket链接与GPRS进行通信的方法
2019/05/20 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
2020/04/25 Javascript
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
[01:34]完美“圣”典宣传片震撼发布,12.17与你不见不散
2016/12/16 DOTA
python抓取网页中图片并保存到本地
2015/12/01 Python
Python编程中的文件读写及相关的文件对象方法讲解
2016/01/19 Python
每天迁移MySQL历史数据到历史库Python脚本
2018/04/13 Python
Python matplotlib生成图片背景透明的示例代码
2019/08/30 Python
解决Python二维数组赋值问题
2019/11/28 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
python扫描线填充算法详解
2020/02/19 Python
Python文字截图识别OCR工具实例解析
2020/03/05 Python
CSS中垂直居中的简单实现方法
2015/07/06 HTML / CSS
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
小学生家长评语大全
2014/02/10 职场文书
颁奖晚会主持词
2014/03/25 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
中秋节随笔
2015/08/15 职场文书
2016年感恩父亲节活动总结
2016/04/01 职场文书
HTML基础详解(上)
2021/10/16 HTML / CSS