균형 3진법¶

이는 비표준적이지만 여전히 위치적인 기수법입니다. 이 기수법의 특징은 각 자릿수가 -1, 0, 1 중 하나의 값을 가질 수 있다는 점입니다. 그럼에도 불구하고 밑은 여전히 3입니다(가능한 값이 세 가지이기 때문입니다). -1을 한 자릿수로 쓰기는 불편하므로, 이후로는 이를 위해 문자 Z를 사용하겠습니다. 꽤 이상한 체계라고 생각하신다면 그림을 보십시오. 이 체계를 활용한 컴퓨터 중 하나입니다.
다음은 균형 3진법으로 쓴 처음 몇 개의 수입니다:
0 0
1 1
2 1Z
3 10
4 11
5 1ZZ
6 1Z0
7 1Z1
8 10Z
9 100
이 체계에서는 앞에 마이너스 부호를 붙이지 않고도 음수를 쓸 수 있습니다. 양수의 각 자릿수를 반전하기만 하면 됩니다.
-1 Z
-2 Z1
-3 Z0
-4 ZZ
-5 Z11
음수는 Z로 시작하고 양수는 1로 시작한다는 점에 유의하십시오.
변환 알고리즘¶
주어진 수를 일단 일반 3진법으로 나타낸 뒤 이를 거치면 균형 3진법으로 쉽게 나타낼 수 있습니다. 값이 일반 3진법으로 표현되어 있을 때 각 자릿수는 0, 1, 2 중 하나입니다. 가장 낮은 자릿수부터 순회하면서 0과 1은 그대로 건너뛰어도 되지만, 2는 Z로 바꾸고 다음 자릿수에 1을 더해야 합니다. 자릿수 3도 같은 방식으로 0으로 바꿔야 합니다. 이런 자릿수는 처음에는 수에 없지만 2를 증가시키는 과정에서 나타날 수 있습니다.
예제 1: 64를 균형 3진법으로 변환해 봅시다. 먼저 일반 3진법으로 수를 다시 씁니다:
가장 낮은(가장 오른쪽) 자릿수부터 처리해 봅시다:
1,0,1은 그대로 건너뜁니다. (0과1은 균형 3진법에서 허용되기 때문입니다)2는Z로 바뀌고 왼쪽 자릿수가 증가하므로1Z101을 얻습니다.
최종 결과는 1Z101입니다.
자릿값에 따른 가중치를 더하여 다시 10진법으로 변환해 봅시다:
예제 2: 237을 균형 3진법으로 변환해 봅시다. 먼저 일반 3진법으로 수를 다시 씁니다:
가장 낮은(가장 오른쪽) 자릿수부터 처리해 봅시다:
0과1은 그대로 건너뜁니다. (0과1은 균형 3진법에서 허용되기 때문입니다)2는Z로 바뀌고 왼쪽 자릿수가 증가하므로23Z10을 얻습니다.3은0으로 바뀌고 왼쪽 자릿수가 증가하므로30Z10을 얻습니다.3은0으로 바뀌고 왼쪽 자릿수(기본값은0)가 증가하므로100Z10을 얻습니다.
최종 결과는 100Z10입니다.
자릿값에 따른 가중치를 더하여 다시 10진법으로 변환해 봅시다: