계승(팩토리얼)계산기(n!・순열nPr・조합nCr)
음이 아닌 정수 n의 계승 n!을 정확하게 계산합니다. 순열(nPr)・조합(nCr)도 지원하며, BigInt를 사용해 자릿수 제한 없이 정확한 정수값을 표시합니다. 0〜20의 계승 조견표 포함.
0〜20의 계승 조견표
0!부터 20!까지의 값을 정리한 표입니다. 20!은 19자리 수가 됩니다.
| n | n! |
|---|---|
| 0 | 1 |
| 1 | 1 |
| 2 | 2 |
| 3 | 6 |
| 4 | 24 |
| 5 | 120 |
| 6 | 720 |
| 7 | 5,040 |
| 8 | 40,320 |
| 9 | 362,880 |
| 10 | 3,628,800 |
| 11 | 39,916,800 |
| 12 | 479,001,600 |
| 13 | 6,227,020,800 |
| 14 | 87,178,291,200 |
| 15 | 1,307,674,368,000 |
| 16 | 20,922,789,888,000 |
| 17 | 355,687,428,096,000 |
| 18 | 6,402,373,705,728,000 |
| 19 | 121,645,100,408,832,000 |
| 20 | 2,432,902,008,176,640,000 |
계승·순열·조합이란
계승 n!은 1부터 n까지의 정수를 모두 곱한 값으로, **n개의 것을 한 줄로 늘어놓는 방법의 총수**를 나타냅니다. 5! = 120, 10! = 3,628,800으로, n이 조금만 늘어도 폭발적으로 커지는 것이 특징입니다. 20!에서 이미 18자리를 넘어, 보통의 부동소수점 수로는 정확히 나타낼 수 없습니다.
이 도구는 **BigInt를 사용해 자릿수의 상한 없이 엄밀한 정숫값을 계산**합니다. 계승에 더해 순열 nPr(n개에서 r개를 골라 늘어놓는 경우의 수)과 조합 nCr(n개에서 r개를 고르는 경우의 수, 순서를 묻지 않음)에도 대응합니다. nPr = n! ÷ (n−r)!, nCr = n! ÷ (r! × (n−r)!)라는 관계에 있으며, **늘어놓는 순서를 구별하는지 여부**가 둘의 유일한 차이입니다. 0~20의 계승 조견표도 함께 있습니다.
계산하는 순서
- 계산의 종류를 고릅니다 계승(n!)·순열(nPr)·조합(nCr) 탭에서 고릅니다.
- n을 입력합니다 0 이상 10,000 이하의 정수입니다. 상한은 계산량의 사정에 따른 것입니다.
- r을 입력합니다(순열·조합의 경우) 0 이상 n 이하의 정수를 입력합니다.
- 결과를 확인합니다 자릿수가 많은 값도 생략 없이 엄밀한 정수로 표시됩니다.
더 잘 활용하기 위한 팁
- 계승(n!)은 1부터 n까지의 모든 정수를 곱한 값입니다. 예: 5! = 5×4×3×2×1 = 120. 특별한 정의로 0! = 1입니다.
- 순열(nPr)은 n개의 서로 다른 것 중 r개를 골라 「나열」하는 경우의 수입니다. 순서를 구분하므로 조합보다 값이 커집니다. 예: 5P2 = 5×4 = 20.
- 조합(nCr)은 n개의 서로 다른 것 중 r개를 「고르는」 경우의 수(순서를 구분하지 않음)입니다. 예: 5C2 = 10(5P2 = 20을 고른 2개의 나열 방법 수 2!=2로 나눈 값).
- 계승은 증가 속도가 매우 빨라 20!에서 이미 19자리, 100!에 이르면 158자리에 달합니다. 이 도구는 BigInt를 사용하므로 큰 n에서도 오차 없이 정확한 값을 계산할 수 있습니다.
- n이 너무 크면(10,000 초과) 계산 비용 문제로 오류가 발생합니다. 브라우저가 응답 불능이 되는 것을 방지하기 위한 실용적인 상한입니다.
이럴 때 쓸 수 있습니다
확률 문제를 풀 때
제비뽑기나 카드의 조합 등 경우의 수를 구하는 문제의 검산에 쓸 수 있습니다.
늘어놓는 방법의 총수를 셀 때
좌석 배치나 토너먼트 대진 등 실무상의 세기에도 도움이 됩니다.
이항계수를 구할 때
nCr은 이항정리의 계수 그 자체입니다. 파스칼의 삼각형의 값을 직접 확인할 수 있습니다.
프로그램의 검산에 쓸 때
직접 만든 계승 함수가 큰 n에서 넘치지 않는지를 엄밀값과 맞춰 확인할 수 있습니다.
계승 관련 용어
- 계승(n!)
- 1부터 n까지의 정수의 곱입니다. **0! = 1로 정의합니다**(빈 곱을 1로 하는 규약에 따릅니다).
- 순열(nPr)
- n개에서 r개를 골라 **늘어놓는** 경우의 수입니다. n! ÷ (n−r)!로 구합니다.
- 조합(nCr)
- n개에서 r개를 **고르는** 경우의 수로, 순서는 구별하지 않습니다. n! ÷ (r! × (n−r)!)로 구합니다.
- 이항계수
- (a+b)^n을 전개했을 때 각 항의 계수로, nCr과 일치합니다.
- BigInt
- JavaScript에서 자릿수 제한 없이 정수를 다루는 형입니다. **보통의 수치형은 2^53을 넘으면 정확성을 잃습니다.**
- 스털링 근사
- n이 클 때 n!을 근사하는 공식입니다. 엄밀값이 필요 없는 장면에서 쓰입니다.
자주 묻는 질문
여담 ― 계승 기호 「!」는 왜 느낌표가 되었을까
계승을 나타내는 「!」 기호는 1808년 프랑스 수학자 크리스티안 크람프(Christian Kramp)가 저서에서 도입했다고 알려져 있습니다. 그 이전에는 수학자마다 각자 다른 표기법을 사용했고 통일된 기호가 없었습니다. 크람프가 이 기호를 선택한 이유에는 여러 설이 있지만, 계승 값이 급격히 커지는 것에 대한 「놀라움」을 표현했다는 설이 잘 알려져 있습니다.
계승의 급격한 증가는 스털링 근사식(n! ≈ √(2πn)(n/e)ⁿ)으로도 알려져 있으며, 통계학・확률론・조합론 등 폭넓은 분야에서 근사 계산에 활용됩니다. 실제로 n!을 정확히 계산하기 어려울 만큼 큰 n에 대해서는 이 근사식이 실용적으로 중요한 역할을 합니다.
순열・조합의 개념은 복권 당첨 확률 계산이나 트럼프 카드의 셔플 방법 수(52장의 트럼프 카드를 나열하는 방법은 52!가지, 약 8×10⁶⁷가지)등 일상적인 확률 문제를 푸는 기초가 됩니다. 조합 수 nCr은 「파스칼의 삼각형」의 각 행의 숫자로도 나타나며, 이항정리((a+b)ⁿ의 전개)와도 밀접하게 관련되어 있습니다.