SICP 연습문제 2.9 친절한 풀이
문제
구간 값의 폭width이란, 구간의 상한에서 하한을 빼고서 반으로 나눈 값을 말한다. 폭은 구간 값이 정확하지 않은 정도를 나타낸다. 구간 값의 산술 연산에서는 인자가 되는 두 구간 값의 폭만 가지고, 결과 값의 폭을 구할 수 있는 연산도 있으나, 그렇지 않은 연산도 있다. 두 구간 값을 더해서(또는 빼서) 나온 구간 값의 폭은, 더하고 있는(또는 빼고 있는) 구간 값의 폭으로도 구할 수 있다는 것을 밝혀라. 그리고 두 구간 값을 곱하거나 나눠서 나온 구간 값의 폭은 그렇게 구하지 못한다는 것을 뒷받침하는 보기를 찾아보아라.
문제로 부터 얻은 것
구간 산술 연산에서 폭의 값만 알아도 할 수 있는 계산이 있다는 것을 알았습니다.
문제풀이
a. 구간 값의 폭으로 결과의 폭을 구할 수 있는 연산
덧셈 연산과 뺄셈 연산은 구간 값의 폭을 알면, 결과의 폭도 알 수 있다는 것을 직관적으로 알 수 있습니다.
두 구간인 a와 b를 아래와 같이 상정하겠습니다.
a와 b에 대해 a+b와 a-b는 다음과 같습니다.
양 경우에서 구간의 폭은 의 값과 상관없이 라는 것을 알 수 있습니다.
b. 구간 값의 폭으로 결과의 폭을 구할 수 없는 연산
위의 a,b에 대해 곱셈도 해보겠습니다.
의 하한은 아래의 경우 중 가장 작은 값이고, 상한은 가장 큰 값입니다.
이것들 중에서 어떤것이 상한인지 하한인지도 계산하기 전에는 알 수 없으며, 구한 상한과 하한의 차이도 제각각인데다가 a값과 b값을 포함하고 있습니다.
나눗셈도 똑같은 방법으로 구간 값의 폭으로 결과의 폭을 구할 수 없다는 것을 증명할 수 있습니다.
읽어주셔서 감사합니다.