我在製作係數組合時遇到了麻煩。基本上我有一個項目清單,並希望得到係數的所有獨特的組合,他們是這樣的:做一個範圍的係數組合?
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我有一個預期輸出的例子。你有什麼理解上的麻煩? –