tooldeb 온라인 도구
카테고리
금융 · 투자 이자, 저축, 수익률, 물가. 대출 · 부동산 주담대, 상환, DSR·DTI·LTV, 전월세. 세금 · 노무 실수령액, 퇴직금, 4대보험, 세금. 쇼핑 · 가격 할인, 팁, 단가 비교, 마진. 건강 · 피트니스 체성분, 영양, 운동 계산기. 수학 백분율, 분수, 대수, 수열. 기하 평면·입체 도형의 넓이, 부피, 겉넓이. 통계 · 확률 평균, 산포, 경우의 수, 확률. 단위 변환 길이, 무게, 온도, 압력 등. IT · 디지털 데이터 용량, 화면, 색상, 네트워크 속도. 공학 · 전자 회로, 저항, PCB, 신호 설계. 날짜 · 시간 나이, D-day, 날짜 계산, 시간대. 집 · 인테리어 페인트, 타일, 벽지, 장판, 콘크리트. 자동차 연료비, 연비, 타이어, 자동차세. 생활 요금, 배송, 사진, 소소한 계산.
KO
한국어 English

순열·조합 계산기

n개에서 r개를 고르는 경우의 수: 순열 nPr(순서 구분)과 조합 nCr(순서 무관)을 계산합니다.

입력
순열 (nPr)
20
조합 (nCr)
10
입력값은 정수로 반올림됩니다. r이 음수이거나 n보다 크면 경우의 수가 없어 “—”로 표시합니다. n과 r이 모두 커지면 nPr·nCr이 Number.MAX_SAFE_INTEGER(2^53−1)를 넘어 정밀도가 깨질 수 있어, 이 경우도 틀린 정수 대신 “—”로 표시합니다. 서로 다른 항목을 중복 없이 고르는 경우를 가정합니다.

순열과 조합의 차이

둘 다 서로 다른 n개에서 r개를 고르는 경우의 수입니다. 순열은 순서를 구분해 ABC와 CBA를 다르게 셉니다. 조합은 순서를 구분하지 않아 ABC와 CBA를 같게 셉니다 — 그래서 nCr은 nPr을 r!(고른 r개를 나열하는 경우의 수)로 나눕니다.

nPr = n! / (n − r)! nCr = n! / ( r! · (n − r)! )
  • n — 서로 다른 전체 항목 수
  • r — 고르는 개수
  • n! — 팩토리얼: n × (n−1) × … × 1

자세한 설명

계산 과정: 기본값 n=5, r=2를 넣으면

이 페이지가 처음 보여주는 값은 n=5, r=2일 때 순열 20, 조합 10입니다. 순열은 자리를 하나씩 채워 나가며 셉니다. 첫 자리에 올 수 있는 사람이 5명, 그 사람을 빼고 둘째 자리에 올 수 있는 사람이 4명이므로 5 × 4 = 20입니다. 공식 nPr = n! / (n − r)!에 넣으면 5! ÷ 3! = 120 ÷ 6 = 20으로 같은 값이 나옵니다. 조합은 여기서 순서를 지웁니다. 뽑은 2명을 나열하는 방법이 2! = 2가지이고 그 2가지를 같은 결과로 보므로 20 ÷ 2 = 10입니다. 공식으로는 5! ÷ (2! × 3!) = 120 ÷ (2 × 6) = 10입니다. 위 계산기가 보여주는 20과 10이 이 손계산과 같은지 확인해 보세요.

순서를 구분할 때 vs 구분하지 않을 때

5명 중 2명을 회장·부회장으로 뽑는 것은 순열(5P2 = 20)입니다 — 두 자리가 서로 다르기 때문입니다. 5명 중 2명을 순위 없는 위원으로 뽑는 것은 조합(5C2 = 10)입니다 — 누구를 ‘먼저 뽑았는지’ 바꿔도 결과가 같기 때문입니다. 순열은 항상 조합보다 r!배 많습니다 — 여기서 2! = 2이고 20 ÷ 2 = 10입니다. 자리에 이름이 붙어 있는지(회장·부회장, 1등·2등, 비밀번호 자릿수)를 먼저 확인하면 둘 중 어느 쪽을 써야 하는지 거의 언제나 갈립니다.

이 계산기가 큰 수에서도 정확한 이유

순열·조합을 공식 그대로 소수 연산으로 계산하면 중간에 팩토리얼이 엄청나게 커져 값이 미세하게 흔들립니다. 실제로 30! ÷ (15! × 15!)을 일반적인 배정밀도 실수로 계산하면 155,117,519.99999997이 나옵니다. 정답은 정확히 155,117,520이므로 반올림하지 않으면 마지막 자리가 틀립니다. 이 계산기는 중간 계산을 소수가 아니라 임의 정밀도 정수(BigInt)로 하고, 조합은 c = c × (n − r + i) ÷ i를 i = 1부터 r까지 반복하는 방식으로 구합니다. 연속한 i개의 정수를 곱하면 i로 반드시 나누어떨어지므로 매 단계의 나눗셈이 정확히 떨어지고, 나머지가 버려지는 일이 없습니다. n=5, r=2로 따라가 보면 i=1에서 1 × 4 ÷ 1 = 4, i=2에서 4 × 5 ÷ 2 = 10으로 소수점 없이 답에 도달합니다.

경계 조건: r이 0, r이 n, r이 n보다 클 때

r = 0이면 순열과 조합이 모두 1입니다 — 아무것도 고르지 않는 방법이 ‘그냥 아무것도 하지 않는다’ 한 가지뿐이기 때문입니다. n = 5, r = 0을 넣으면 두 칸 모두 1이 나옵니다. r = n이면 갈립니다. 5개를 전부 줄 세우는 방법은 5! = 120가지라 순열은 120이지만, 전부 고르는 조합은 ‘다섯 개 다’ 한 가지뿐이라 1입니다. r이 n보다 크면 없는 항목을 골라야 하므로 경우의 수가 존재하지 않고, 두 칸 모두 —로 바뀌면서 r은 0과 n 사이여야 한다는 안내가 함께 나옵니다. 음수를 넣어도 같은 처리를 받습니다.

표시 한계: 두 값을 따로 판정합니다

이 계산기는 결과가 정확히 표현 가능한 정수 범위(2^53−1 = 9,007,199,254,740,991)를 넘으면 틀린 숫자를 보여주는 대신 —로 표시합니다. 중요한 점은 순열과 조합을 따로 판정한다는 것입니다. 조합은 순열을 r!로 나눈 값이라 항상 순열 이하이므로(r이 0이나 1이면 같습니다), 순열만 넘치고 조합은 멀쩡한 구간이 넓습니다. n = 30, r = 15를 넣으면 순열은 —이지만 조합은 155,117,520으로 정상 표시됩니다. 순열 쪽 한계는 n = r일 때 가장 먼저 닿아서, 18P18 = 6,402,373,705,728,000까지는 나오지만 19P19부터는 —입니다. 조합 쪽 한계는 훨씬 뒤라 56C28 = 7,648,690,600,760,440까지 나오고 57C28부터 —로 바뀝니다.

오해 정정: 중복을 허용하면 이 공식이 아닙니다

네 자리 숫자 비밀번호의 가짓수를 10P4 = 5,040으로 계산하면 틀립니다. 순열 공식은 한 번 쓴 항목을 다시 쓰지 않는 경우만 셉니다. 그런데 비밀번호는 1155처럼 같은 숫자를 여러 번 쓸 수 있으므로 자리마다 10가지가 그대로 열려 있어 10 × 10 × 10 × 10 = 10,000가지입니다. 실제 가짓수가 5,040이 되는 경우는 ‘네 자리 모두 서로 다른 숫자’라는 조건이 붙었을 때뿐입니다. 이 계산기는 중복을 허용하지 않는 쪽만 계산하므로, 중복이 가능한 문제라면 자리 수만큼 거듭제곱하는 식을 따로 써야 합니다.

대칭성으로 검산하는 법

조합에는 nCr = nC(n−r)라는 대칭성이 있습니다. 뽑을 것을 고르는 일과 남길 것을 고르는 일이 같은 선택이기 때문입니다. 카드 52장에서 5장을 고르는 경우의 수 52C5 = 2,598,960은 47장을 남기는 경우의 수 52C47과 같은 값이고, 위 계산기에 n = 52, r = 47을 넣어도 조합 칸에 같은 2,598,960이 나옵니다. 다만 이때 순열 칸은 —입니다. 52P47은 표현 한계를 훌쩍 넘기 때문입니다. 대칭성은 조합에만 있고 순열에는 없다는 점도 함께 확인되는 셈입니다.

소수를 넣으면 반올림한 뒤 계산합니다

n과 r 칸에 5.5처럼 소수를 넣으면 계산 전에 먼저 가장 가까운 정수로 반올림합니다. 5.5는 6으로 올라가므로 n = 5.5, r = 2를 넣으면 5P2 = 20이 아니라 6P2 = 30, 6C2 = 15가 나옵니다. 반면 5.4는 5로 내려가 20과 10이 그대로 나옵니다. 경우의 수는 정수 개수를 세는 값이라 소수 개의 항목이라는 것이 성립하지 않기 때문인데, 반올림 방향에 따라 답이 눈에 띄게 달라지므로 소수가 섞여 있다면 입력값을 먼저 정리하는 편이 안전합니다.

이 페이지가 전제하는 조건과 기준일

이 계산기는 서로 다른 n개에서 중복 없이 r개를 고르는 경우만 다룹니다. 같은 항목이 여러 개 섞여 있거나(예: 글자가 겹치는 단어의 배열), 뽑은 것을 도로 넣고 다시 뽑는 상황은 다른 식이 필요합니다. 표시 한계로 언급한 2^53−1은 이 계산기가 결과를 화면에 내보낼 때 쓰는 수 형식의 성질이지 순열·조합 자체의 한계가 아닙니다. 이 설명의 기준일은 2026년이며, 공식이 달라질 일은 없습니다. 근거: nPr = n! / (n − r)!은 첫 자리부터 r번째 자리까지 각각 n, n−1, …, n−r+1가지를 곱한 값을 팩토리얼로 줄여 쓴 것이고, nCr은 그 순열에서 뽑은 r개끼리의 순서 r!가지를 나눠 없앤 값입니다. 정의에서 바로 유도되므로 시점이나 나라와 무관하게 같은 값이 나오며, 위 본문의 20·10·155,117,520·2,598,960은 모두 이 계산기의 실제 출력으로 확인한 값입니다.

빠른 점검. nCr은 대칭입니다: nCr = nC(n−r). 그래서 5개 중 2개 고르기(10가지)는 5개 중 3개 고르기와 같습니다 — 넣을 것을 고르는 것과 뺄 것을 고르는 것이 같기 때문입니다. nPr은 항상 nCr 이상이며, r이 0 또는 1일 때만 서로 같습니다.

자주 묻는 질문

순열과 조합은 어떻게 다른가요?

순열은 순서를 구분해 세고(순서 중요), 조합은 순서를 구분하지 않고 셉니다(순서 무관). 5개에서 2개를 고를 때 순열은 5P2 = 20, 조합은 5C2 = 10으로 정확히 2! = 2배 차이가 납니다 — 각 쌍을 두 가지 순서로 나열할 수 있기 때문입니다.

5개에서 2개를 고르는 경우의 수는?

조합(순서 무관)이면 5C2 = 5! / (2!·3!) = 10입니다. 순열(순서 구분)이면 5P2 = 5! / 3! = 20입니다. 위에 n = 5, r = 2를 입력하면 둘 다 볼 수 있습니다.

10P3과 10C3은 얼마인가요?

10P3 = 10 × 9 × 8 = 720(순서 구분)입니다. 10C3 = 720 ÷ 3! = 720 ÷ 6 = 120(순서 무관)입니다. n = 10, r = 3을 입력해 확인하세요.

r이 n보다 크면 어떻게 되나요?

존재하는 것보다 더 많은 서로 다른 항목을 고를 수 없으므로 nPr과 nCr 모두 0이며 이 계산기는 “—”로 표시합니다. 공식은 0 ≤ r ≤ n을 요구하고, nP0과 nC0은 모두 1입니다(아무것도 고르지 않는 한 가지 경우).

n과 r이 30·15나 60·30처럼 크면 어떻게 되나요?

nCr = nPr ÷ r!이 항상 nPr 이하이므로(r이 0이나 1이면 같습니다) nPr과 nCr을 따로 검사합니다. n=30, r=15이면 nPr은 2^53−1을 넘어 “—”이지만 nCr = 155,117,520은 표시됩니다. nCr 자체가 2^53−1을 넘을 때(예: 60C30)만 둘 다 “—”입니다. 2^53−1은 자바스크립트 숫자가 정확히 표현할 수 있는 가장 큰 정수입니다.

관련 계산기

통계 계산기 전체 보기