가상 주문 번호가472라고 해 볼까요? 입력 프로그램은 각 자리 숫자를 더한 뒤 아홉으로 나눈 나머지가 원본과 같으면 통과시킵니다. 번호의 길이는 세 자리로 고정하고 앞자리 영은 쓰지 않아요. 이런 검사는 긴 번호를 짧은 값으로 줄여 대조하지만, 통과한 번호가 원본과 반드시 같다는 보증일까요?
472의 자리 합은13이고 아홉으로 나눈 나머지는4입니다. 잘못 입력한473의 자리 합은14로 나머지가5이므로 이번 오류는 발견됩니다. 그러나742의 자리 합도13입니다.
서로 다른 번호 두 개가 같은 검사 값을 가져요. 자리 교환은 합을 바꾸지 않으므로 이 검사만으로는 발견할 수 없어요.
이 원리는 십이 아홉으로 나누면 하나 남는다는 자리값 성질에서 나와요. 백도 하나 남으므로 각 자리 숫자의 합과 전체 번호는 아홉으로 나눈 나머지가 같아요. 번호 하나의 숫자가 하나만 변했다면 보통 나머지도 변하지만, 영을 아홉으로 바꾸는 경우처럼 차이가 아홉인 변경은 역시 놓쳐요. 발견 가능한 오류의 종류를 구체적으로 적어야 해요.
검사 값이 다른 경우에는 입력이 같지 않다는 결론을 낼 수 있어요. 값이 같은 경우에는 같을 수도 있고 다를 수도 있어요. 실제 주문에서 이 예시 검사를 단독 인증으로 쓰자는 뜻은 아니에요. 짧게 요약한 정보는 빠른 비교에 도움이 되지만 원래 자리 순서를 모두 보존하지 않아요. 중요한 번호를 대조할 때에는 검사 방식이 보존하는 정보와 버리는 정보를 함께 살펴보세요.
참고한 수학 개념: NRICH · Digit Addition.
이 글의 생활 상황과 계산 예시는 수학 이야기에서 새로 구성했습니다.
