蛮力法解决01背包问题python
时间: 2024-07-20 16:01:26 浏览: 67
蛮力法(Brute Force)也称为穷举法,用于求解01背包问题是一种简单直接但效率较低的算法。对于01背包问题,给定一组物品,每个物品有自己的重量和价值,目标是在不超过背包容量的情况下,选择物品以最大化总价值。以下是使用Python实现的简单版本:
```python
def knapsack_brute(weights, values, capacity):
n = len(weights)
result = * (capacity + 1) # 初始化一个数组存储所有情况的最大价值
for i in range(1, n + 1): # 遍历所有物品
for w in range(capacity + 1): # 对于每个背包容量
if weights[i - 1] <= w: # 如果物品能放入背包
# 选择当前物品
result[w] = max(result[w], result[w - weights[i - 1]] + values[i - 1])
else: # 物品太大,无法放入
result[w] = result[w]
return result[capacity]
# 示例
weights = [10, 20, 30]
values = [60, 100, 120]
capacity = 50
max_value = knapsack_brute(weights, values, capacity)
print("最大价值:", max_value)
阅读全文