""" 背包问题 """ import numpy as np weight = [0,2,3,4,5,9] value=[0,3,4,5,8,10] Bag=np.zeros((6,21)) def knapsack(Bag,value): """ :param value: 物品的价值 :param cap:当前背包重量 :param Bag: 二维矩阵,行表示背包可以承受的重量,列表示背包的价值和重量 """ for k in range(1,6): for cap in range(1,21): if cap<21: if weight[k]>cap: Bag[k][cap]=Bag[k-1][cap] else: value1=Bag[k-1][cap-weight[k]]+value[k] value2=Bag[k-1][cap] if value1>value2: Bag[k][cap]=value1 else: Bag[k][cap]=value2 return Bag,Bag[-1][-1] print(knapsack(Bag,value))
用python实现背包问题
最新推荐文章于 2024-04-20 14:26:46 发布