12345의 숫자 5개에서 3개를 선택하는 방법에는 10가지가 있다.

조합론에서는 5C3=10으로 나타낸다.

일반적으로 r<=n, n!=nx(n-1)x...x3x2x1이고 0!=1일 때, nCr=n!/(r!(n-r)!)이다.

n=23이 되어 23C10=1144066이 되기 전에는 1백만을 넘지 않는다.

1에서 100사이의 n일 때, 몇 개의 nCr이 1백만보다 큰가(서로 다를 필요는 없음)?

--------------------------------------------------------------------------

 

html로 수학 공식을 표현하기 힘들어서 문제를 오일러 프로젝트에서 캡처했고, 조합은 C를 이용해서 표현했다.

 

팩토리얼(계승) 숫자가 기하급수적으로 커지기는 하지만 파이썬에서 다루는 데 아무 문제가 없기 때문에 리스트로 100!까지 미리 구해놓고 계산을 시작했다.

 

n과 r을 이중반복문으로 구성해서 n!을 r! x (n-r)!로 나누고 1백만이 넘는 경우가 몇 개인지 계산하면 되므로 그렇게 어렵지 않게 구할 수 있다.

 

+ Recent posts