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解析html开发库pyquery使用方法
Feb 07 Python
在Python的Django框架下使用django-tagging的教程
May 30 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
Apr 13 Python
Python第三方库的安装方法总结
Jun 06 Python
用Python将动态GIF图片倒放播放的方法
Nov 02 Python
Python3调用微信企业号API发送文本消息代码示例
Nov 10 Python
详解Python 装饰器执行顺序迷思
Aug 08 Python
BP神经网络原理及Python实现代码
Dec 18 Python
python opencv minAreaRect 生成最小外接矩形的方法
Jul 01 Python
基于多进程中APScheduler重复运行的解决方法
Jul 22 Python
python实现TCP文件传输
Mar 20 Python
python爬虫泛滥的解决方法详解
Nov 25 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调用数据库的存贮过程
2006/10/09 PHP
详解WordPress中分类函数wp_list_categories的使用
2016/01/04 PHP
PHP格式化MYSQL返回float类型的方法
2016/03/30 PHP
PHP二维数组矩形转置实例
2016/07/20 PHP
php 使用html5实现多文件上传实例
2016/10/24 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
PHP CURL与java http使用方法详解
2018/01/26 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
JS+CSS实现一个气泡提示框
2013/08/18 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
js验证电话号码与手机支持+86的正则表达式
2014/01/23 Javascript
JS实现鼠标箭头变成一个燃烧烛光效果的方法
2015/02/28 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
2016/06/01 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
2016/12/08 Javascript
JSON与js对象序列化实例详解
2017/03/16 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
vue中keep-alive的用法及问题描述
2018/05/15 Javascript
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
2020/02/01 Javascript
js实现视图和数据双向绑定的方法分析
2020/02/05 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
2020/02/13 Javascript
Javascript节流函数throttle和防抖函数debounce
2020/12/03 Javascript
Python实现的二维码生成小软件
2014/07/11 Python
Python中的defaultdict与__missing__()使用介绍
2018/02/03 Python
python3实现斐波那契数列(4种方法)
2019/07/15 Python
Django 模型类(models.py)的定义详解
2019/07/19 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
Selenium关闭INFO:CONSOLE提示的解决
2020/12/07 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
2021/01/12 Python
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
旷课检讨书2000字
2014/01/14 职场文书
《小蝌蚪找妈妈》教学反思
2014/02/21 职场文书
《路旁的橡树》教学反思
2014/04/07 职场文书
患者身份识别制度
2015/08/06 职场文书
导游词之包公祠
2019/11/25 职场文书
mysql备份策略的实现(全量备份+增量备份)
2021/07/07 MySQL