등식이론은

좌변과 우변을 바라보는 관점이

같을 수도 있고 다를 수도 있다.



등식이론

a ≠ a


예를 들면

다음이 성립한다.

0.1 ≠ 0.1


좌변은 사람이 다루는 0.1이고,

우변은 컴퓨터가 다루는 0.1이다.


0.1의 소수점 아래 숫자를

명시적으로 표현하여

좀 더 정확하게 나타내보자.


<좌변>

좌변 0.1의 소수점 아래 10째 자리까지 표현:

0.1000000000


좌변 0.1의 소수점 아래 20째 자리까지 표현:

0.10000000000000000000


좌변 0.1의 소수점 아래 30째 자리까지 표현:

0.100000000000000000000000000000


<우변>

우변 0.1의 소수점 아래 10째 자리까지 표현:

0.1000000000


우변 0.1의 소수점 아래 20째 자리까지 표현:

0.10000000000000000555


우변 0.1의 소수점 아래 30째 자리까지 표현:

0.100000000000000005551115123125




다음이 성립한다.

0.1 ≠ 0.1


단, 좌변은 사람이 다루는 0.1이고,

우변은 컴퓨터가 다루는 0.1이다.





0.1 + 0.2 = 0.3 ?

0.1 + 0.2 ≠ 0.3 ?



사람은

0.1 + 0.2 = 0.3 이라고 판단하지만

컴퓨터는

01 + 0.2 ≠ 0.3 이라고 판단한다.


그 비밀은

컴퓨터가 입력된 숫자를 이진법의 수로 바꾸어 저장하는 데 있다.


이를테면

십진법의 수 0.1은 유한소수이지만

이진법의 수로 나타내면

0.00011로 무한소수이다.


컴퓨터가 숫자 하나를 저장하기 위해

무한 시간 동안 무한히 저장하는 작업만 해야 한다면

컴퓨터는 무용지물이 된다.


그래서

컴퓨터는 적당히 어딘가에서 자르고

근사값을 저장하게 된다.


그 근사값은

당연히

처음 사람이 입력한 0.1과

다르게 되는 것이다.



참고:

십진법의 수 0.1은

이진법의 수 0.00011

(0011 무한 반복)



십진법의 수 0.2는

이진법의 수 0.0011

(0011 무한 반복)



십진법의 수 0.3은

이진법의 수 0.01011

(1011 무한 반복)