python 贪心算法解决分数背包问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 贪心算法解决分数背包问题相关的知识,希望对你有一定的参考价值。
# Uses python3
import sys
def get_optimal_value(capacity, weights, values):
value = 0
average_value = [values / weights for values, weights in zip(values, weights)]
combined_list = zip(average_value, values, weights)
sorted_combined_list = sorted(combined_list, reverse = True)
for item in sorted_combined_list:
if item[2] > capacity:
value = value + capacity/item[2]*item[1]
capacity = 0
else:
capacity = capacity - item[2]
value = value + item[1]
return value
m = sys.stdin.read()
data = list(map(int, m.split()))
n, capacity = data[0:2]
values = data[2:(2 * n + 2):2]
weights = data[3:(2 * n + 2):2]
opt_value = get_optimal_value(capacity, weights, values)
print("{:.4f}".format(opt_value))
以上是关于python 贪心算法解决分数背包问题的主要内容,如果未能解决你的问题,请参考以下文章
用动态规划求解分数背包问题
贪心算法:背包问题
使用贪心python算法解决背包问题
算法贪心算法(0-1背包问题)
贪心算法解决背包问题?
算法导论——贪心算法