본문 바로가기

교육/수알못시리즈

유리수의 n 진법 체계 n-ary numeration system of rational number

이전 포스트에 정수에 대한 n 진법을 했고,

이번엔 유리수에 대한 n 진법에 대해 얘기하겠다.

 

유리수를 R = N + a ( N을 정수, 0=<a <1) 로 나타낼 수 있고,

1보다 작고 0보다 큰 양의 유리수 a에 대해 살펴보겠다.

a같은 수를 소수( 小數 ) 라고 한다.

 

a를 n 진법으로 나타내보자.

일단 a에 n을 곱해보겠다.

 

a*n = b(1) + c 

 

b(1)은 0 =< b(1) < n 인 정수

0 =< c < 1 인 유리수

 

이 때, 결과는 이런 식으로 쓸 수 있겠다.

 

이제 c에 대해 n을 곱해보자.

 

c*n = b(2) + d

             

b(2)는 0 =< b(2) < n 인 자연수

0 =< d < 1 인 유리수

 

이런 식으로 가장 끝에 자연수가 나올 때까지 반복하면

 

a = b(1)/n + ... + b(m-1)/(n^(m-1)) + b(m)/(n^m)

 

0=< b(1), ... , b(m-1), b(m) < n 인 정수

 

으로 n 진법 유리수로 나타낼 수 있다.

 

그림으로 나타내면 이런 식이다.

 

 

 

 

뒤에 소수( 小數 )에 n을 곱하는 과정을 계속해서

최후에 0 이상의 정수가 나올 때까지 계산하고,

계산 과정에서 나온 정수를 화살표 방향으로 차례대로

분자에 기입하면 된다.

 

정수를 나타낼 때는 나누면서 진행했는데,

소수( 小數 )를 나타낼 때는 반대로 곱하면서 진행하는 점이 특징이다.

 

 

유리수 r = 7/10 + 5/(10^2)  를 2진법으로 변환시켜보자.

유리수 r에 2를 곱해보자.

 

2*r = 1 + 4/10 + 1/10

= 1+ 5/10

 

5/10 * 2 =1

 

r = 1/2 +1/(2^2)

 

이렇게 이진법으로 표현할 수 있다.

 

n 진법의 소수( 小數 )를 나타낼 때는 0.abcd 이런 식으로 나타낸다.

( a,b,c,d 는 0보다 크거나 같고 n보다 작은 정수 )

즉, 위의 수 a는 n 진법으로

 

a = 0.b(1) ... b(m-1)b(m)

 

이렇게 표현할 수 있고,

십진법 0.75는 이진법 0.11 이 된다는 의미이다.

 

이전 포스트에서 십진법 35는 이진법 100011이므로,

 

십진법 35.75 는 이진법 100011.11이 되겠다.

 

유리수에서 정수 부분과 소수( 小數 ) 부분의 변환 방법이 다르므로,

정수와 소수로 나누어 변환해서 합쳐야 한다.