도구스개발

검사숫자(담·베르회프) 계산기

번호 끝에 붙일 검사숫자를 담·베르회프·룬 세 방식으로 만들고 검증합니다. 세 방식이 한 자리 오류와 자리 바꿈을 각각 몇 %나 잡는지 10,000개 번호로 실제로 세어 보여 주며, 룬이 09와 90을 왜 놓치는지도 다룹니다.

숫자만 씁니다. 공백·쉼표·하이픈은 무시합니다. 30자리까지.

572 + 담 검사숫자

5724

끝에 붙은 4이 검사숫자입니다. 이 번호를 다시 넣으면 「올바름」으로 나옵니다.

담 검사숫자4 → 5724
베르회프 검사숫자7 → 5727
룬 검사숫자8 → 5728

어떤 오류를 잡아내는가

방식한 자리 오류이웃 자리 바꿈한 자리 건너뛴 바꿈
100%100%90.75%
베르회프100%100%94.22%
100%97.78%0.00%

네 자리 번호 10,000개에 오류를 모두 만들어 넣고 실제로 센 값입니다 — 한 자리 오류 450,000가지, 이웃 자리 바꿈 36,000가지, 건너뛴 바꿈 27,000가지를 각각 걸러 봤습니다.

룬이 놓치는 것은 09 ↔ 90 뿐입니다. 자리마다 2를 곱하고 9를 넘으면 9를 빼는 방식이라, 0과 9가 이웃해 자리를 바꾸면 합이 그대로이기 때문입니다(0×2 = 0, 9×2 = 18 → 9). 전체 이웃 자리 바꿈 가운데 약 2.2%가 여기에 해당합니다. 담과 베르회프는 이 예외마저 없애 100%를 잡습니다.
룬은 한 자리 건너뛴 바꿈(1234 → 3214)을 하나도 못 잡습니다. 두 자리의 「두 배를 하는가」가 같아 자리를 바꿔도 합이 그대로이기 때문입니다. 담은 90.75%, 베르회프는 94.22%를 잡습니다 — 둘도 100%는 아니지만 0%와는 이야기가 다릅니다.
담은 10×10 표 하나로 끝납니다. 중간값을 0에서 시작해 자릿수마다 표[중간값][자릿수]로 갱신하고, 마지막 중간값이 곧 검사숫자입니다. 표가 아무거나여서는 안 되고 모든 행과 열이 0~9의 순열이며 대각선이 전부 0이고 「완전 반대칭」이어야 합니다 — 완전 반대칭이 이웃 자리 바꿈을 모두 잡는 근거입니다. 이 도구는 그 세 성질을 테스트가 매번 검사합니다.
베르회프는 정십각형의 대칭군에서 놉니다. 0~4는 회전, 5~9는 뒤집기이고, 곱셈이 가환이 아니라서(순서를 바꾸면 결과가 달라져서) 자리 바꿈을 잡아낼 수 있습니다. 이 도구는 곱셈표를 외워 넣지 않고 군의 법칙에서 만들어 씁니다. 1969년에 나와 담보다 35년 앞섰지만, 표를 세 개나 들고 다녀야 해서 구현이 더 번거롭습니다.

담의 표

00317598642
17092154863
24206871359
31750983426
46123045978
53674209581
65869720134
78945362017
89438617205
92581436790

대각선(파란 0)이 모두 0이라 같은 자릿수를 두 번 만나도 제자리로 돌아옵니다. 행도 열도 0~9가 한 번씩만 나오므로, 어느 자리에서 어떤 숫자가 틀려도 결과가 반드시 달라집니다 — 한 자리 오류를 100% 잡는 이유가 여기 있습니다.

사용 방법

  1. 1검사숫자를 만들지 번호를 검증할지 고릅니다.
  2. 2담·베르회프·룬 가운데 방식을 고릅니다.
  3. 3번호를 넣습니다. 만들 때는 검사숫자를 빼고, 검증할 때는 붙여서 넣습니다.
  4. 4세 방식의 결과를 나란히 견줍니다.
  5. 5검출률 표에서 어느 방식이 어떤 오류를 놓치는지 확인합니다.

자주 묻는 질문

번호 끝에 붙여 잘못 적은 것을 걸러 내는 한 자리 숫자입니다. 앞자리에서 정해진 규칙으로 계산하므로, 옮겨 적다가 한 자리를 틀리거나 두 자리를 바꿔 쓰면 검사숫자가 맞지 않아 바로 드러납니다. 주민등록번호·ISBN·신용카드 번호가 모두 이 방식을 씁니다.

이웃한 09와 90의 자리 바꿈만 놓칩니다. 자리마다 2를 곱하고 9를 넘으면 9를 빼는 방식이라 0×2 = 0, 9×2 = 18 → 9가 되어 두 자리를 바꿔도 합이 그대로이기 때문입니다. 전체 이웃 자리 바꿈 가운데 약 2.2%가 여기에 해당합니다.

10×10 표 하나만 있으면 됩니다. 중간값을 0에서 시작해 자릿수마다 표[중간값][자릿수]로 갱신하고, 마지막 중간값이 곧 검사숫자입니다. 검사숫자까지 넣고 돌렸을 때 0이 나오면 올바른 번호입니다.

아닙니다. 모든 행과 열이 0~9의 순열이고(라틴 방진), 대각선이 전부 0이며, 완전 반대칭이어야 합니다. 완전 반대칭이란 (z*x)*y = (z*y)*x이면 반드시 x = y라는 성질로, 이것이 이웃 자리 바꿈을 하나도 놓치지 않는 근거입니다.

정십각형의 대칭군(이면체군 D₅)에서 계산합니다. 0~4는 회전, 5~9는 뒤집기이고 곱셈이 가환이 아니라서(순서를 바꾸면 결과가 달라져서) 자리 바꿈을 잡아냅니다. 1969년에 나와 담보다 35년 앞섰지만 표를 세 개나 들고 다녀야 해서 구현이 더 번거롭습니다.

1234를 3214로 적는 오류인데, 룬은 이것을 하나도 잡지 못합니다. 두 자리의 「두 배를 하는가」가 같아 자리를 바꿔도 합이 그대로이기 때문입니다. 담은 약 91%, 베르회프는 약 94%를 잡습니다 — 둘도 100%는 아니지만 0%와는 이야기가 다릅니다.

새로 만드는 번호라면 담이 무난합니다. 표 하나로 끝나 구현이 가장 간단하면서 한 자리 오류와 이웃 자리 바꿈을 모두 잡습니다. 신용카드처럼 이미 룬을 쓰는 체계는 바꿀 수 없고, 룬도 사람이 저지르는 오류의 대부분은 잡아 줍니다.

전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.

알아두면 좋은 점

  • 담의 준군 표를 믿지 않고 그 조건을 직접 검사합니다. 모든 행과 열이 0~9의 순열인지, 대각선이 전부 0인지, 완전 반대칭인지를 테스트가 매번 확인하므로 옮겨 적은 표가 틀렸다면 검출률을 세기 전에 걸립니다.
  • 베르회프의 곱셈표는 아예 외우지 않고 이면체군의 법칙(회전·뒤집기의 합성)에서 만들어 씁니다. 만든 표가 라틴 방진이고 결합법칙을 만족하며 항등원과 역원이 제대로인지, 그리고 가환이 아닌지(자리 바꿈을 잡을 수 있는 이유)까지 검사합니다.
  • 베르회프의 뒤섞기 순열은 「여덟 걸음이면 제자리로 돌아온다」는 성질로 붙잡습니다.
  • 검출률은 세어서 냅니다. 네 자리 번호 10,000개에 한 자리 오류 450,000가지, 이웃 자리 바꿈 36,000가지, 건너뛴 바꿈 27,000가지를 모두 만들어 넣고 걸러지는지 셌습니다. 화면에 쓰는 표는 그 결과를 상수로 둔 것이고, 테스트가 매번 다시 세어 대조합니다.
  • 룬이 놓치는 이웃 자리 바꿈이 정말 0과 9뿐인지도 검사합니다. 놓친 사례마다 어긋난 두 자리를 확인해 반드시 09인 것을 고정했습니다.
  • 널리 알려진 예제(담 572 → 4, 베르회프 236 → 3, 룬 7992739871 → 3)와도 대조했습니다.
  • 세 방식 모두, 0부터 9999까지 붙인 검사숫자가 다시 검증을 통과하는지 확인했습니다. 만들기와 검증이 어긋나면 도구 자체가 뜻이 없기 때문입니다.

함께 보면 좋은 도구

마지막 검증: 2026년 9월 1일 · 결과는 참고용 추정치입니다.