博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
01背包问题python 2.7实现
阅读量:4328 次
发布时间:2019-06-06

本文共 1763 字,大约阅读时间需要 5 分钟。

版权声明:本文为博主原创文章,转载请注明转自 

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 class bag(): 4     def __init__(self,weight,value): 5         self.weight = weight 6         self.value = value 7     def knapsack(self, full_weight):#weight value存数组 8         result = [[0 for i in range(full_weight+1)] for i in range(len(self.value)+1)] 9         count = len(self.weight)#物品个数10         for n in range(1,count+1):#n当前最大物品个数11             for weight in range(0,full_weight+1):#背包内重量递增12                 if self.weight[n-1]<=weight:#第n个背包的重量为weight[n-1]判断是否小于允许容量13                     if result[n-1][weight]<(result[n-1][weight-self.weight[n-1]]+self.value[n-1]):14                         #如果当前物品在相同重量情况下价值更高15                         result[n][weight]=result[n-1][weight-self.weight[n-1]]+self.value[n-1]16                     else:17                         result[n][weight]=result[n-1][weight]18                 else:19                     result[n][weight] =result[n-1][weight]20         for perrow in result:21             print perrow22         return result23     def find_which(self,full_weight):24         result = self.knapsack(full_weight)25         i= len(result)-126         j = len(result[i])-127         while i >=1:28             while j>=1:29                 if result[i-1][j]!=result[i][j]:#说明当前行的东西拿了30                     print '第'+ str(i)+'个'31                     j = j -self.weight[i-1]32                     i = i - 133                     break34                 else:35                     i = i -136 37 38 def main():39     sort_instance = bag([2,2,6,5,4,1,2,7,5,7,4],[6,3,5,4,6,1,4,7,3,6,1])#重量,价值初始化40     sort_instance.find_which(30)#定义背包总重量41 42 if __name__ =='__main__':43     main()

实现结果:

 

转载于:https://www.cnblogs.com/kdxb/p/6140625.html

你可能感兴趣的文章
完美分页
查看>>
IE8/9 JQuery.Ajax 上传文件无效
查看>>
Uploadify--上传图片
查看>>
B. Inna and Nine
查看>>
建议性列表输入文本框
查看>>
RTSP 资料
查看>>
[转]uboot中SPL作用
查看>>
Excel VBA Range对象基本操作应用示例
查看>>
html5拖拽
查看>>
kerboros安装
查看>>
我的学习之路_第二十九章_bootstrap
查看>>
Python读取文件行数不对
查看>>
考研经验交流
查看>>
手游助手应用源码项目
查看>>
职场心得笔记
查看>>
Android context(Application/Activity)与内存泄露
查看>>
mysql 行转列
查看>>
jquery easyui 经验
查看>>
Kafka官方文档翻译——设计
查看>>
本地推送
查看>>