100이 00으로 표시돼도, 검산을 통과할 수 있을까요?

마지막 두 자리만 저장하는 장치로 제곱수 표를 검사해요. 두 번 차를 구하는 검산이 나머지에서는 맞아도, 100이 00으로 바뀐 넘침을 놓칠 수 있어요. 나머지가 같은 것과 원래 정수값이 정확한 것을 구별해요.

빈 표시창의 가상 기계식 계수기 생성 이미지

이미지: AI 생성 · 수학 이야기

가상의 두 자리 장치는 모든 값의 마지막 두 자리만 저장해요. n² 표의 n=8,9,10 값이64,81,00으로 표시되었어요. 둘째 차를 계산해 마지막 두 자리만 검사했더니02라 합격했어요. 원래 정수표도 정확하다고 해도 되나요?

Fn=n2,F~n=Fn(mod100),0≤F~n<100.F_n=n^2,\qquad \widetilde F_n=F_n\pmod{100},\quad0\le\widetilde F_n<100.

표시값의 둘째 차는0−2×81+64=−98입니다. 마지막 두 자리는2이므로 합동 검사에는 통과해요. 그러나 n=10의 원래 값100이0으로 표시되어 정수값은 정확하지 않아요.

F~10−2F~9+F~8=−98≡2(mod100).\widetilde F_{10}-2\widetilde F_9+\widetilde F_8=-98\equiv2\pmod{100}.

100의 배수를 버린 계산은 더하기·빼기의 나머지를 보존하므로 이런 검사는 넘침을 모두 찾아내지 못해요.

박물관은 실제 Difference Engine No.2의31자리 값을 설명해요. 위 두 자리 장치는 한계를 관찰하려고 만든 자체 장치이며 실제 기계가 같은 방식으로 몰래 넘침을 처리했다는 역사 주장이 아니에요. 표시 자리와 검산의 계산 범위를 문제에서 별도로 정의했어요.

교사는 검산 통과 뒤에 무엇과 합동인지만 안 것인지, 어떤 범위에서 원래 정수를 복원할 수 있는지 물어요. 모든 참값이0~99라는 추가 조건이 있으면 나머지가 원래값과 같지만 현재 n=10은 그 조건을 어겨요. 장치의 정상 표시와 값의 의미를 따로 확인하는 문제예요.

착안: Computer History Museum, Babbage Engine — How it Works. 문항의 작은 값·상황·계산 모형은 자체 교육용이에요.

이 글 공유하기

개인정보 및 방문 통계 안내