Збалансована трійкова система числення

Це нестандартна, але все ж позиційна система числення. Її особливість у тому, що цифри можуть набувати одного зі значень -1, 0 та 1.
Попри це, її основа все одно дорівнює 3 (бо можливих значень три). Оскільки записувати -1 однією цифрою незручно,
далі для цього ми вживатимемо літеру Z. Якщо ви вважаєте, що ця система доволі дивна — погляньте на світлину: ось один із
комп'ютерів, що її застосовує.
Отже, ось кілька перших чисел, записаних у збалансованій трійковій системі:
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.
Алгоритм переведення
Подати задане число у збалансованій трійковій системі легко, спершу тимчасово подавши його у звичайній трійковій системі числення. Коли значення
записане у стандартній трійковій системі, його цифри дорівнюють 0, 1 або 2. Ідучи від наймолодшої цифри, ми можемо спокійно пропускати будь-які 0 та 1,
проте 2 слід перетворити на Z, додавши 1 до наступної цифри. Цифри 3 слід перетворювати на 0 за тими самими правилами —
таких цифр спочатку в числі немає, але вони можуть з'явитися після збільшення деяких 2.
Приклад 1: Переведімо 64 у збалансовану трійкову систему. Спершу перепишемо число у звичайній трійковій системі:
Обробляймо його, починаючи з наймолодшої (найправішої) цифри:
1,0та1лишаємо без змін (бо0і1дозволені у збалансованій трійковій системі).2перетворюється наZ, збільшуючи цифру ліворуч від неї, тож отримуємо1Z101.
Остаточний результат — 1Z101.
Переведімо його назад у десяткову систему, додавши зважені позиційні значення:
Приклад 2: Переведімо 237 у збалансовану трійкову систему. Спершу перепишемо число у звичайній трійковій системі:
Обробляймо його, починаючи з наймолодшої (найправішої) цифри:
0та1лишаємо без змін (бо0і1дозволені у збалансованій трійковій системі).2перетворюється наZ, збільшуючи цифру ліворуч від неї, тож отримуємо23Z10.3перетворюється на0, збільшуючи цифру ліворуч від неї, тож отримуємо30Z10.3перетворюється на0, збільшуючи цифру ліворуч від неї (яка за замовчуванням дорівнює0), тож отримуємо100Z10.
Остаточний результат — 100Z10.
Переведімо його назад у десяткову систему, додавши зважені позиційні значення: