nのエントリがあり、それぞれがまたはの値を取るとします。つまり、2^nの可能な組み合わせがあります。エントリの数は、からまで変わる可能性があります。可能なすべての組み合わせを作成するための効率的なアルゴリズムとは何ですか?
何千ものIFに頼らずに、一連の数字(、つまり、n = 2:00、01、10、11)としてそれぞれの組み合わせを作成するにはどうすればよいですか?
nのエントリがあり、それぞれがまたはの値を取るとします。つまり、2^nの可能な組み合わせがあります。エントリの数は、からまで変わる可能性があります。可能なすべての組み合わせを作成するための効率的なアルゴリズムとは何ですか?
何千ものIFに頼らずに、一連の数字(、つまり、n = 2:00、01、10、11)としてそれぞれの組み合わせを作成するにはどうすればよいですか?
各エントリに指定できる値は唯一またはすることができた場合1、あなたはちょうど0と1の組み合わせが必要なのですが、Nickによって上に示唆されているように自然な整数(バイナリ形式)を2 ^(n-1)あなたが文字列をしたい場合は0のパディング...
ちょうどint型を使用します。
n = 5
for x in range(2**n):
print ''.join(str((x>>i)&1) for i in xrange(n-1,-1,-1))
クレイジーthis answerから持ち上げバイナリ変換に小数。
出力:
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
10000
10001
10010
10011
10100
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111
悲しいことに私は少しPythonを理解していない、私は主にJavaを使用します。しかし、私はそれを試してみるつもりです。ありがとう。 – Hans
または使用itertools
:項目は、この場合の4つの要素のタプルであること
import itertools
for item in itertools.product((1, 0), repeat=4):
print item
注意。
あなたは答えを見たことがありますか:http://stackoverflow.com/questions/127704/algorithm-to-return-all-combinations-of-k-elements-from-n – Shog9