순열 순위(랭크)·Lehmer 코드 계산기
순열이 사전순으로 몇 번째인지 구하고, 번호에서 순열을 되찾습니다. 레머 코드와 계승진법 자리값을 함께 보여 주며, 조합수 체계로 부분집합의 번호도 냅니다. 큰 수는 BigInt로 정확히 셉니다.
공백이나 쉼표로 나눠 적습니다. 구분자가 없으면 글자 하나씩으로 봅니다
사전순 번호 (0부터)
13
24가지 가운데 14번째 · 사전순 첫 순열은 1 2 3 4
계승진법으로 읽기 — 랭크 = Σ Lᵢ · (n−1−i)!
| 자리 | 놓은 것 | 건너뛴 개수 Lᵢ | 자리값 | 보태는 값 |
|---|---|---|---|---|
| 1 | 3 | 2 | 3! = 6 | 12 |
| 2 | 1 | 0 | 2! = 2 | 0 |
| 3 | 4 | 1 | 1! = 1 | 1 |
| 4 | 2 | 0 | 0! = 1 | 0 |
| 합계 | 13 | |||
사용 방법
- 1«순열 → 번호»에 순열을 적습니다. 공백·쉼표로 나누거나 «dcba»처럼 붙여 써도 됩니다.
- 2사전순 번호와 레머 코드, 계승진법 자리별 계산이 함께 나옵니다.
- 3«번호 → 순열»로 바꾸면 항목 개수와 번호에서 순열을 되찾습니다.
- 4«조합 번호»에서는 n개 중 k개를 고른 부분집합의 사전순 번호를 냅니다.
자주 묻는 질문
레머 코드를 계승진법으로 읽습니다. 각 자리에서 «오른쪽에 아직 남아 있는 것 중 지금 놓은 것보다 작은 것이 몇 개인지»를 세면 그것이 레머 코드 Lᵢ이고, 랭크 = Σ Lᵢ·(n−1−i)!입니다. 첫 자리에서 두 개를 건너뛰었다면 그 두 개마다 나머지 (n−1)!가지가 통째로 앞에 놓이기 때문입니다.
순열을 계승진법 숫자로 옮긴 표기입니다. 예를 들어 [2, 0, 3, 1]의 레머 코드는 [2, 0, 1, 0]이고, 이를 자리값 3!, 2!, 1!, 0!으로 읽으면 2·6 + 0·2 + 1·1 + 0·1 = 13이 됩니다. 실제로 네 개짜리 순열을 사전순으로 늘어놓으면 [2,0,3,1]이 13번(0부터)입니다.
자리값이 1, 10, 100이 아니라 1!, 2!, 3!이고, i번째 자리에 올 수 있는 값이 0부터 i까지로 제한됩니다. 그래서 n자리 계승진법 수는 0부터 n!−1까지를 빠짐없이 한 번씩 나타내며, 그것이 순열과 번호가 일대일로 맞아떨어지는 이유입니다.
배정도 실수(double)는 23!부터 값이 소리 없이 틀리기 때문입니다. 21!은 이미 안전정수 한계 2⁵³을 넘지만 계승에는 2의 거듭제곱 인수가 많아 21!·22!는 우연히 정확하게 표현됩니다. 23!은 정확한 값이 25,852,016,738,884,976,640,000인데 double로는 …978,212,864가 나옵니다. 랭크는 큰 수를 정확히 세는 것이 존재 이유라 전부 정수로 다룹니다.
조합수 체계(combinatorial number system)로 셉니다. 앞자리를 c로 정하면 그 아래로 C(남은 원소 수, 남은 자리 수)가지가 딸려 오므로, 건너뛴 앞자리마다 그 이항계수를 더합니다. 로또 6/45로 말하면 [1 2 3 4 5 6]이 0번, [40 41 42 43 44 45]가 마지막 8,145,059번입니다.
받지 않습니다. «BANANA»처럼 같은 글자가 겹치면 사전순 번호를 세는 식이 달라져(계승 대신 다항계수를 씁니다) 결과가 어긋납니다. 이 계산기는 서로 다른 항목만 다루고, 겹치면 어느 항목이 겹쳤는지 알려 줍니다.
순열 계산기는 nPr처럼 «모두 몇 가지인가»를 셉니다. 이 계산기는 그중 하나를 집어 «사전순으로 몇 번째인가»를 구하고 번호에서 순열을 되찾습니다. 경우의 수를 통째로 들고 있지 않고 번호만으로 나눠 처리하거나, 무작위 순열을 번호 하나로 재현 가능하게 저장할 때 쓰는 방식입니다.
전송되지 않습니다. 계산은 모두 브라우저 안에서 이루어지고 넣은 값은 이 기기에만 남습니다.
알아두면 좋은 점
- 서로 다른 항목만 받습니다. 같은 항목이 겹치는 중복순열은 다항계수로 세야 해서 범위 밖입니다.
- 순열 항목은 30개까지 받습니다. 30!은 이미 2.6×10³²이라 번호가 32자리입니다.
- 번호는 0부터 셉니다. 화면에는 «몇 번째»로 읽는 1부터의 순번도 함께 냅니다.
- 숫자만 넣으면 문자열 사전순이 아니라 크기순으로 정렬합니다. «9 10 2»는 2 < 9 < 10으로 봅니다.
- 조합 번호의 원소는 화면에서 1부터 n까지로 적고, 안에서 0부터로 바꿔 계산합니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 2일 · 결과는 참고용 추정치입니다.