我在制作系数组合时遇到了麻烦。基本上我有一个项目清单,并希望得到系数的所有独特的组合,他们是这样的:做一个范围的系数组合?
dog:1 cat:1
dog:2 cat:1
dog:3 cat:1
dog:1 cat:2
dog:2 cat:2
我真的不知道这样做(动态规划的最佳方式,递归,蛮力,等等。),所以我试图做一个递归开始:
list = ["dog", "cat"]
coeff = [1] * len(list)
main_queue = []
def recursion(k, list):
for item in list[0:k-1]:
for data in range(5):
coeff_temp = coeff
coeff_temp[k] = data
main_queue.append(coeff_temp)
#print item, data
if k == (len(list)-1):
return
else:
recursion(k+1, list)
recursion(0, list)
print "*" * 30
for x in main_queue:
print x
输出为:
******************************
[4, 1]
[4, 1]
[4, 1]
[4, 1]
[4, 1]
它只是改变了我提出的主要队列中的最后一项。我究竟做错了什么?
p.s.这是做到这一点的最佳方式(范围在1-5之间,列表中会有大约20-30个项目..我最好使用动态编程)?
我不明白你的描述你想要完成什么。 – murgatroid99
请提供一个*完整的例子,以明确指定输入和预期输出。 – NPE
@ murgatroid99我有一个预期输出的例子。你有什么理解上的麻烦? –