У меня есть этот вопрос относительно проблемы с рюкзаком, и цель в значительной степени похожа на результат проблемы с рюкзаком. Возникает вопрос:Рюкзак Функция Python
Предположим, у вас есть коллекция п элементов. Все предметы имеют одинаковый вес, w и вы можете выбрать не более один каждого товара. Написать функцию Python, которая дана в качестве входных данных емкости рюкзака, емкости, список (отсортированный в порядке возрастания) значений, значения, каждый элемент, и вес, ж и возвращает максимальное значение, которое может содержать рюкзак.
Я попытался написать функцию, но почему-то не мог понять, где бы вес, w
, будет подходящим в строке кода.
def knapsack(capacity,n):
if len(n) ==0:
return 0
elif n[-1][0] > capacity:
return knapsack(capacity, n[:-1])
else:
return max(knapsack(capacity,n[:-1]), knapsack(capacity-n[-1][0],n[:-1]+n[-1][1]
Каким-то образом, я искал много способов, чтобы выяснить этот вопрос, как я относительно новым для Python, но мне не понравилось, как код работает, как я не понял, вопрос полностью , Есть ли лучший способ решить эту функцию Python?