1. 개요
clock arithmetic · 時計 算術, 時計 代數學정수[1]의 집합이 유한하다고 간주하는 산술. '시계 대수학'이라고도 한다. 대개 '[math(n)]시(時) 산술'[2], '[math(n)]시 대수학', '[math(n)]진 정수' 등으로 불린다. 기호로는 [math((\Z_n,+,\cdot))][3]으로 표기한다.
예를 들어 시계에서 12시에서 1시간이 경과하면 13시가 아니라 1시가 된다.[4] 이를 수식으로 표현하면 [math(12+1=1)]이 되는데 좀더 수학적으로 표현하면 mod 연산을 써서 [math(12+1\equiv1\pmod{12}))]로 표기할 수 있다. 다만, 실제로 수학에서 다룰 경우는 [math(1,{\cdots},n)]이 아니라 [math(0,{\cdots},n-1)]을 범위로 한다. 덧셈의 항등원인 [math(0)]이 있는 게 여러모로 편하기 때문.
2. 상세
예를 들어 '5시 대수학'에서는 정수가 [math(0,1,2,3,4)]밖에 없고, 이 다섯 개의 수가 반복된다. 즉 [math(4)] 다음에는 [math(0)]이 오는 식. 따라서 이런 체계에서는[math(k)]는 [math(0)] 이상의 정수 | |||||
[math(5k)] | [math(5k+1)] | [math(5k+2)] | [math(5k+3)] | [math(5k+4)] | |
5시 대수학 | [math(0)] | [math(1)] | [math(2)] | [math(3)] | [math(4)] |
따라서 5시 대수학에서는 [math(2+4=1)], [math(4\cdot4=1)] 등이 성립한다. 이는 나머지와도 연관이 있다. 한마디로 어떤 수를 [math(5)]로 나누었을 때 나머지가 다름 아닌 '5시 대수학'에서의 값이 된다.
자연수 [math(n)]에 대해 [math(n)]시 대수학은 덧셈과 뺄셈, 곱셈이 잘 정의되므로 가환환이 된다. [math(n)]이 소수일 때는 [math((a+b)^n=a^n+b^n)]이 성립하는 말도 안 되는 결과도 낼 수 있다. [math(n)]이 소수인 경우, 확장된 유클리드 호제법으로 잉여역수, 즉 곱해서 [math(1)]이 되는 수를 구할 수 있어 나눗셈 또한 정의할 수 있고, 따라서 체까지 된다.
합동식, 순환군과도 관련이 있다.
3. 기타
일반각도 같은 맥락이라고 볼 수 있다. 한 바퀴를 돌 때마다 각이 반복되기 때문.[5]컴퓨터에서는 오버플로를 통해 자주 접할 수 있다. 가령 32비트 정수형인 경우 [math(2^{31}-1)] 다음의 수가 [math(-2^{31})]이 나오는 식.[6]
[1] 다른 수 체계를 이용해서도 만들 수 있으나, 시계 산술이 수학적으로 가치 있는 것은 정수이므로 보통 정수로 생각한다.[2] 저 [math(n)]을 법 또는 표수(characteristic)라고 한다.[3] 정수에서 [math(n)]개의 수를 순서를 주어 뽑고, 덧셈과 곱셈을 준다는 의미.[4] 24시간 표기에서도 결국 마찬가지인데, 24시에서 1시간이 지나면 25시가 아닌 1시가 되기 때문이다.[5] 사실 이 설명은 앞뒤가 바뀌었다고 볼 수 있는데, 일반각의 [math(bmod{,2pi})]를 지구의 자전주기의 절반에 대응시켜 만든 것이 시계이기 때문이다.[6]
u32
에서는 [math(2^{32}-1)] 다음이 [math(0)].