2012-10-13 4 views

답변

2

쉬운 11100 번호를 쓰고,이 값의 순열의 수를 계산 = n! = 5 !, 은 3 1의 = 3의 순열의 수로 나눕니다! 그리고 0의 순열의 수 = 2! => 5!/(2 * 3!) = 120 (6 * 2) 임의의 언어, 당신이 되돌아 알고리즘을 사용하는 것 외에 다른 선택의 여지가, 실제 값을 필요로하는 경우 이제 10

11100 
11010 
11001 
10110 
10101 
10011 
01110 
01101 
01011 
00111 

을 = /.

이 특별한 경우를 들어, 당신은 쉽게이 언어를 생성하는 간단한 알고리즘을 구축 할 수 있습니다 : 여기에 얼마나 많은 방법으로 계산이다 파이썬

def GenerateLanguage(nZeros, nOnes): 
    if nZeros + nOnes == 0: 
     return [''] 
    res = [] # Resulting list, initialize with 1 empty string 
    if nOnes > 0: # If we have 1's left, build all the strings that starts with a 1 
     for l in GenerateLanguage(nZeros, nOnes - 1): 
       res.append('1' + l) 
    if nZeros > 0: # If we have 0's left, build all the strings that starts with a 0 
     for l in GenerateLanguage(nZeros - 1, nOnes): 
       res.append('0' + l) 
    return res 
+0

를 사용하는 예입니다. 그리고 이것들을 출력하고 싶다면? – stracktracer

+0

모든 값을 찾아내는 간단한 알고리즘을 추가했습니다. –

관련 문제