係数の組み合わせを作成するのに問題があります。基本的に私はアイテムのリストを持っており、次のようにそれらの係数のすべての一意の組み合わせを取得したいと思います。
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]
メインキューの最後のエントリのみを変更します。私は何が間違っているのですか?
psこれを行うための最良の方法ですか(範囲は1〜5で、リストには約20〜30の項目があります。動的計画法を使用する方がよいでしょう)。