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 str与repr的区别
Mar 23 Python
python装饰器decorator介绍
Nov 21 Python
利用Python中的mock库对Python代码进行模拟测试
Apr 16 Python
python回调函数中使用多线程的方法
Dec 25 Python
Python学习之Django的管理界面代码示例
Feb 10 Python
Django配置celery(非djcelery)执行异步任务和定时任务
Jul 16 Python
python与caffe改变通道顺序的方法
Aug 04 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
Nov 14 Python
Python 虚拟空间的使用代码详解
Jun 10 Python
python批量下载抖音视频
Jun 17 Python
pycharm中选中一个单词替换所有重复单词的实现方法
Nov 17 Python
python+appium+yaml移动端自动化测试框架实现详解
Nov 24 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过滤黑名单关键字的方法
2014/12/01 PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
2016/12/28 PHP
laravel框架数据库配置及操作数据库示例
2019/10/10 PHP
PHP中mysqli_get_server_version()的实例用法
2020/02/03 PHP
Javascript与vbscript数据共享
2007/01/09 Javascript
js DOM的学习笔记
2011/12/22 Javascript
Jquery实现点击按钮,连续地向textarea中添加值的实例代码
2014/03/08 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
微信小程序 登陆流程详细介绍
2017/01/17 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
详解如何让InstantClick兼容MathJax、百度统计等
2017/09/12 Javascript
react router 4.0以上的路由应用详解
2017/09/21 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
[02:51]DOTA2英雄基础教程 艾欧
2014/01/13 DOTA
python 判断自定义对象类型
2009/03/21 Python
Python实现字符串与数组相互转换功能示例
2017/09/22 Python
对python中raw_input()和input()的用法详解
2018/04/22 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)
2020/04/22 Python
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
ivx平台开发之不用代码实现一个九宫格抽奖功能
2021/01/27 HTML / CSS
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
戴森香港官方网站:Dyson香港
2021/02/11 全球购物
Java中实现多态的机制是什么?
2014/12/07 面试题
编程实现去掉XML的重复结点
2014/05/28 面试题
写好自荐信的技巧
2013/11/08 职场文书
架构师岗位职责
2013/11/18 职场文书
销售总监岗位职责
2014/01/04 职场文书
超市食品安全承诺书
2015/04/29 职场文书
婚礼家长致辞
2015/07/27 职场文书
敬业奉献模范事迹材料(2016精选版)
2016/02/26 职场文书
Python如何解决secure_filename对中文不支持问题
2021/07/16 Python