问题是关于编写一个递归函数“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
>>>