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 27 Python
讲解Python中fileno()方法的使用
May 24 Python
Python实现重建二叉树的三种方法详解
Jun 23 Python
python多线程并发让两个LED同时亮的方法
Feb 18 Python
matplotlib实现区域颜色填充
Mar 18 Python
Python实现直方图均衡基本原理解析
Aug 08 Python
Python帮你微信头像任意添加装饰别再@微信官方了
Sep 25 Python
python3 实现口罩抽签的功能
Mar 11 Python
Django自定义列表 models字段显示方式
Apr 03 Python
超全Python图像处理讲解(多模块实现)
Apr 13 Python
Python logging模块异步线程写日志实现过程解析
Jun 30 Python
Python如何合并多个字典或映射
Jul 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中冒号、endif、endwhile、endfor使用介绍
2010/04/28 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
2012/01/20 PHP
ThinkPHP实现跨模块调用操作方法概述
2014/06/20 PHP
js实现单击图片放大图片的方法
2015/02/17 Javascript
JavaScript中常见获取元素的方法汇总
2015/03/04 Javascript
jQuery的Scrollify插件实现滑动到页面下一节点
2015/07/05 Javascript
javascript实现在线客服效果
2015/07/15 Javascript
理解 JavaScript Scoping &amp; Hoisting(二)
2015/11/18 Javascript
Node.js 文件夹目录结构创建实例代码
2016/07/08 Javascript
Jquery通过ajax请求NodeJS返回json数据实例
2016/11/08 NodeJs
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
JS控件bootstrap datepicker使用方法详解
2017/03/25 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
2017/06/16 Javascript
详解vue+vueRouter+webpack的简单实例
2017/06/17 Javascript
基于iScroll实现下拉刷新和上滑加载效果
2017/07/18 Javascript
JS实现的集合去重,交集,并集,差集功能示例
2018/03/13 Javascript
4个顶级开源JavaScript图表库
2018/09/29 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
2018/11/08 Javascript
微信小程序开发的基本流程步骤
2019/01/31 Javascript
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
vue实现移动端省市区选择
2019/09/27 Javascript
谈谈node.js中的模块系统
2020/09/01 Javascript
如何在现代JavaScript中编写异步任务
2021/01/31 Javascript
[56:01]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 Effect vs EG
2018/03/31 DOTA
python列表生成式与列表生成器的使用
2018/02/23 Python
python解析xml简单示例
2019/06/21 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
2020/01/15 Python
python日志通过不同的等级打印不同的颜色(示例代码)
2021/01/13 Python
英国家庭、花园、汽车和移动解决方案:Easylife Group
2018/05/23 全球购物
Hanro官网:奢华男士和女士内衣、睡衣和家居服
2018/10/25 全球购物
生物科学专业职业规划书范文
2014/02/11 职场文书
本科毕业生求职自荐信
2014/04/09 职场文书
学习经验演讲稿
2014/05/10 职场文书
幼儿园大班见习报告
2014/10/31 职场文书
JavaScript中的LHS和RHS分析详情
2022/04/06 Javascript
el-table-column 内容不自动换行的解决方法
2022/08/14 Vue.js