各桁が0,1,2,3または4の4桁のロックが指定されている場合、合計4個までのすべての組み合わせの配列を作成するにはどうすればよいですか? 例えば:各桁が0,1,2,3または4の4桁のロックが与えられている場合、どのように合計して合計4を計算することができますか?
[1, 1, 1, 1] is good, 1 + 1 + 1 + 1 == 4
[4, 0, 0, 0] is good, 4 + 0 + 0 + 0 == 4
[0, 4, 0, 0] is good, 0 + 4 + 0 + 0 == 4
[0, 3, 1, 0] is good, 0 + 3 + 1 + 0 == 4
[0, 0, 2, 2] is good, 0 + 0 + 2 + 2 == 4
[1, 2, 3, 4] is not, because 1 + 2 + 3 + 4 != 4
ひとつのアイデアは、数字を追加し、彼らは4 ==かどうかを確認し、すべての4桁の数字(0000、1000年、0100、0010、...)を介して、ちょうどブルートフォースループでしたもしそうなら、それを私のリストに追加してください。ここで問題となるのは、無駄な繰り返しがたくさんあるということです。なぜならこれらの数字は決して== 4なので、5桁以上は気にしないからです。
私はこれを何時間も考えていましたが、新鮮な視点、ありがとう!
、あなたはそれぞれの桁が1、2、3、または4することができ言っているしかし、あなたの例では、あなたは同様に0を使用しています。それは間違いですか? – niyasc
あなたが正しいです、更新させてください。数字は0,1,2,3、または4になります。 – prgrmnerd
これは、[配列のすべての組み合わせを生成する](http://codereview.stackexchange.com/questions/7001/generating-all-combinations-of-an-array) – ozil