n 항목이 있으며 각 사용자는 또는 의 값을 가질 수 있습니다. 즉, 2^n 개의 항목 조합이 가능합니다. 항목 수는 에서 까지 다양 할 수 있습니다.모든 가능한 조합을 만드는 효율적인 알고리즘은 무엇입니까?
수천 개의 IF를 사용하지 않고 가능한 조합을 숫자 시퀀스 (, 즉, n = 2 : 00, 01, 10, 11)로 어떻게 만들 수 있습니까?
n 항목이 있으며 각 사용자는 또는 의 값을 가질 수 있습니다. 즉, 2^n 개의 항목 조합이 가능합니다. 항목 수는 에서 까지 다양 할 수 있습니다.모든 가능한 조합을 만드는 효율적인 알고리즘은 무엇입니까?
수천 개의 IF를 사용하지 않고 가능한 조합을 숫자 시퀀스 (, 즉, n = 2 : 00, 01, 10, 11)로 어떻게 만들 수 있습니까?
각 항목에 사용할 수있는 값은 0 또는 될 수있는 경우 1, 그리고 당신은 단지 0과 1 조합을 원합니다. 왜 자연 정수 (바이너리 형태로)를 2^(n-1)까지 사용할 수 있습니까? 0 '문자열을 원한다면 패딩 ...
this answer에서 올려 진 변환
n = 5
for x in range(2**n):
print ''.join(str((x>>i)&1) for i in xrange(n-1,-1,-1))
미친 진수 : 단지의 int를 사용합니다.
출력 :
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
슬프게도 나는 약간의 파이썬을 이해하지 못한다. 주로 자바를 사용한다. 그러나 나는 그것을 한 번 시도하려고 노력할 것이다. 감사. – 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