Python基于回溯法解决01背包问题实例

作者:littlethunder 时间:2023-08-04 01:09:04 

本文实例讲述了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程序设计有所帮助。

来源:http://blog.csdn.net/littlethunder/article/details/26621427

标签:Python,回溯法,背包问题
0
投稿

猜你喜欢

  • vue下载excel文件的四种方法实例

    2024-04-09 10:44:56
  • 低效的键盘和高效的登录框

    2007-08-22 09:17:00
  • CentOS 6.6服务器编译安装lnmp(Nginx1.6.2+MySQL5.6.21+PHP5.6.3)

    2023-11-15 06:40:50
  • 基于Go和PHP语言实现爬楼梯算法的思路详解

    2024-05-22 10:18:20
  • python文件操作整理汇总

    2022-08-16 16:46:25
  • Python中的列表知识点汇总

    2021-06-01 05:00:50
  • Python基于traceback模块获取异常信息

    2022-04-27 11:30:10
  • windows下python模拟鼠标点击和键盘输示例

    2021-11-12 21:06:32
  • Django使用消息提示简单的弹出个对话框实例

    2023-02-08 06:23:07
  • Python Django教程之实现天气应用程序

    2022-03-22 23:02:43
  • 关于SQL Server数据库备份和恢复特性介绍

    2009-02-19 16:57:00
  • vue中的传值及赋值问题

    2024-05-28 15:45:32
  • go 语言字符类型 byte 与 rune案例详解

    2024-04-26 17:22:57
  • SQLSERVER 中datetime 和 smalldatetime类型分析说明

    2024-01-23 23:36:13
  • Pytest接口自动化测试框架搭建模板

    2022-01-29 02:26:44
  • OpenCV-Python实现怀旧滤镜与连环画滤镜

    2023-01-29 08:56:22
  • Tensorflow 2.4加载处理图片的三种方式详解

    2023-12-07 05:28:26
  • BootStrap表单控件之复选框checkbox和单选择按钮radio

    2023-08-20 09:36:22
  • Django框架创建mysql连接与使用示例

    2024-01-18 10:38:26
  • 为网站代码块pre标签增加一个复制代码按钮代码

    2024-04-10 10:49:27
  • asp之家 网络编程 m.aspxhome.com