문제는 트윈 팬 균형에서 주어진 가중치 세트로 원하는 값을 측정 할 수 있는지 여부를 결정하는 "def EhMensuravel (target, weight)" 재귀 함수를 작성하는 데 있습니다. 사용 가능한 가중치는 "가중치"목록에 저장됩니다. 목표 무게의 동일한 플레이트에서 무게가 반대되는 플레이트에 무게를 놓을 수 있다는 것을 기억하십시오.파이썬에서의 재귀
내가 만든 코드는 그 것이지만 뭔가 잘못되었습니다.
weights = [1, 2, 3]
matrix = []
def createaMatrix():
for i in range(len(weights)):
matrix.append([])
for j in range(3):
for i in range(len(weights)):
if j==0:
matrix[j].append(weights[i])
if j==1:
matrix[j].append(-weights[i])
if j==2:
matrix[j].append(0)
createMatrix()
def EhMensuravel(entry, weights, final_weight=0):
if final_weight == entry:
return True
for j in range(3):
for i in range(len(weight)):
final_weight += matrix[i][j]
return EhMensuravel(entry, weight[1:], final_weight)
편집 : 나는 print EhMensuravel(4, weights)
할 때 예를 들어, 출력은 다음과 같습니다
>>>
1
2
3
None
>>>
"문제가 있습니다." * 무엇이 잘못 되었습니까? 질문을 편집하십시오. –
프로그램의 출력과 실행 방법을 공유하십시오. –
'EhMensuravel' 함수의'for' 루프에서 돌아오고 있습니다. 이것은 'len (weights)'가 0이 아닌 한'j = 0'과'i = 0' 만 사용한다는 것을 의미합니다.이 경우 내부 루프가 실행되지 않으므로 함수는'None'을 반환합니다. – andersschuller