def greedy_bean_knapsack(capacity, beans):
for bean in beans:
bean['value_per_weight'] = bean['value'] / bean['weight']
sorted_beans = sorted(beans, key=lambda x: x['value_per_weight'], reverse=True)
total_value = 0
selected_beans = []
for bean in sorted_beans:
if capacity >= bean['weight']:
capacity -= bean['weight']
total_value += bean['value']
selected_beans.append(bean)
return total_value, selected_beans
capacity = 100
beans = [
{'name': 'Bean1', 'weight': 30, 'value': 60},
{'name': 'Bean2', 'weight': 20, 'value': 100},
{'name': 'Bean3', 'weight': 50, 'value': 120},
{'name': 'Bean4', 'weight': 10, 'value': 40},
{'name': 'Bean5', 'weight': 40, 'value': 150}
]
max_value, selected_beans = greedy_bean_knapsack(capacity, beans)
print(f"最大总价值: {max_value}")
print("选中的豆子:")
for bean in selected_beans:
print(f"{bean['name']} - 重量: {bean['weight']}kg, 价值: {bean['value']}")