【发布时间】:2017-12-11 00:31:22
【问题描述】:
我对 python 有了初步的了解,并且正在尝试解决这个背包算法问题。
一个示例输入/输出是:
输入:
3 50
60 20
100 50
120 30
输出:
180.000
下面是我看不懂的代码,在算法问题的起始代码文件中提供。对于之前的问题集,我一直在用 input() 替换 sys.stdin.read() 因为我更了解它。我认为它正在尝试映射输入,所以它最终是:n = 3,容量 = 50,值 = [60, 100, 120],权重 = [20, 50, 30]。
if __name__ == "__main__":
data = list(map(int, sys.stdin.read().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("{:.10f}".format(opt_value))
我在堆栈的某处读到我可能需要将最后一行更改为:
print("{!s:10f}".format(opt_value))
但这产生了不同的错误
ValueError:“str”类型的对象的未知格式代码“f”。
如果您能帮助我理解或指出正确的方向,我将不胜感激。谢谢你。
【问题讨论】:
-
get_optimal_value在哪里定义?你能把那个代码也包括进去吗?
标签: python algorithm python-3.x knapsack-problem