gpt4 book ai didi

python程序报错(分数背包问题)

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:54:36 27 4
gpt4 key购买 nike

python 的分数背包问题它在我运行代码时给出错误,是拆分函数不适用于整数值。

Traceback (most recent call last):
File "C:/Users/Akshay/Desktop/python/kapsack_problem.py", line 49, in <module>
.format(n)).split()
File "<string>", line 1
60 100 120
^
SyntaxError: invalid syntax

这是使用贪心算法解决分数背包问题的 Python 程序的源代码。我做错了什么请告诉我。提前致谢。

def fractional_knapsack(value, weight, capacity):

index = list(range(len(value)))
# contains ratios of values to weight
ratio = [v/w for v, w in zip(value, weight)]
# index is sorted according to value-to-weight ratio in decreasing order
index.sort(key=lambda i: ratio[i], reverse=True)

max_value = 0
fractions = [0]*len(value)
for i in index:
if weight[i] <= capacity:
fractions[i] = 1
max_value += value[i]
capacity -= weight[i]
else:
fractions[i] = capacity/weight[i]
max_value += value[i]*capacity/weight[i]
break

return max_value, fractions


n = int(input('Enter number of items: '))
value = input('Enter the values of the {} item(s) in order: '
.format(n)).split()
value = [int(v) for v in value]
weight = input('Enter the positive weights of the {} item(s) in order: '
.format(n)).split()
weight = [int(w) for w in weight]
capacity = int(input('Enter maximum weight: '))

max_value, fractions = fractional_knapsack(value, weight, capacity)
print('The maximum value of items that can be carried:', max_value)
print('The fractions in which the items should be taken:', fractions)

最佳答案

您似乎尝试使用 Python 2.x 解释器运行此代码,而您的代码是用 Python 3 编写的。为了能够运行它,您需要检查您的计算机上是否安装了 Python 3(有关安装说明,请参阅 here)。
要运行它,请运行

python3 my_script.py

在终端中。
另一种可能是粘贴

#!/usr/bin/env python3

在你的 python 脚本的顶部。然后,如果您使文件可执行(例如,通过在 ubuntu 上运行 chmod +x myscript.py),您就可以简单地运行它

./my_script.py

关于python程序报错(分数背包问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55449528/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com