Как исправить проблему с рюкзаком при пересечении максимального веса - PullRequest
0 голосов
/ 07 марта 2020
obj = [1, 2, 3, 4, 5, 6, 7]
pro = [10, 5, 15, 7, 6, 18, 3]
weight = [2, 3, 5, 7, 1, 4, 1]
pro_per_kg = []

for i in range(0,7):
    pro_per_kg.append(pro[i] / weight[i])
w = float(0)
p = float(0)
while (w <= 15):
    x = max(pro_per_kg)
    ii = pro_per_kg.index(x)
    w += weight[ii]
    p += pro[ii]
    pro_per_kg[ii] = 0
print(pro_per_kg)
print(p)

Это проблема с рюкзаком, максимальный вес, который может нести сумка, составляет 15 кг. проблема, с которой я сталкиваюсь, - это мое, пока я oop пересекаю отметку в 15 кг скриншот отладчика

ответ должен быть 54,6, а я получаю 57

...