배낭 문제와 관련된이 질문은 배낭 문제의 결과와 거의 비슷합니다. 질문 : 배낭 파이썬 함수
당신이 N 항목의 컬렉션을 가지고 가정하자. 모든 항목의 무게가 같고, ,이며, 각 항목의 최대 값은 입니다.입니다. 입력으로서 배낭의 용량을 부여 파이썬 함수, 용량, 값 (오름차순으로 정렬) 목록 값, 각 항목과 중량와트 작성하고 을 반환 배낭이 지닐 수있는 최대 값은입니다.
필자는 함수를 쓰려고했지만 어쨌든 코드의 행에 적당한 숫자 인 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 함수를 해결할 더 좋은 방법이 있습니까?