Карта → событие
«Сетунь»: троичная ЭВМ
Замысел
В 1956 году Сергей Львович Соболев, возглавлявший кафедру вычислительной математики механико-математического факультета МГУ, поставил задачу: университету нужна своя машина — маленькая, дешёвая, надёжная, чтобы на ней могли считать студенты, а не только избранные лаборатории.
Работу возглавил Николай Петрович Брусенцов, инженер университетского вычислительного центра. Ему было тридцать.
Тогда же было принято решение, из-за которого машину помнят: считать не в двоичной системе, а в уравновешенной троичной.
Уравновешенная троичная система
В ней три цифры: $\overline1$ (то есть $-1$), $0$ и $1$. Число записывается как сумма степеней тройки с этими коэффициентами:
$$N=\sum_{i} d_i\,3^{i},\qquad d_i\in\{-1,0,1\}.$$
Пример: $5 = 9 - 3 - 1$, то есть $1\overline1\overline1$.
Из такого определения бесплатно получается несколько свойств, каждое из которых в двоичной технике стоит отдельных схем.
Отрицательные числа не требуют знакового разряда. Чтобы поменять знак, достаточно поменять все цифры на противоположные: $-5 = \overline111$. Никаких дополнительных кодов, никакой асимметрии диапазона (в восьмиразрядном двоичном дополнительном коде помещаются числа от $-128$ до $+127$ — а троичный диапазон симметричен по построению).
Знак числа — это знак старшей ненулевой цифры. Сравнение двух чисел сводится к сравнению цифр слева направо.
Округление — это отбрасывание младших разрядов. В двоичной системе отбрасывание даёт округление вниз, и, чтобы округлить правильно, нужна отдельная операция. Здесь отбрасывание само даёт ближайшее целое, потому что отбрасываемый хвост по модулю всегда меньше половины веса разряда.
Запись однозначна, и для каждого числа существует ровно одно представление.
Почему три
Есть аргумент в пользу тройки, который можно проверить в две строки. Пусть надо представлять числа до $N$, а цифра принимает $b$ значений. Тогда разрядов нужно $n=\log_b N$. Грубая «цена» устройства пропорциональна числу разрядов, умноженному на сложность одного разряда, то есть на $b$:
$$C(b)=b\,n=b\,\frac{\ln N}{\ln b}=\ln N\cdot\frac{b}{\ln b}.$$
Минимизируем $f(b)=b/\ln b$:
$$f'(b)=\frac{\ln b-1}{\ln^{2}b}=0\ \Longrightarrow\ \ln b=1\ \Longrightarrow\ b=e\approx2{,}718.$$
Целое, ближайшее к $e$, — тройка. Считаем:
$$\frac{2}{\ln 2}=2{,}885,\qquad \frac{3}{\ln 3}=2{,}731,\qquad \frac{4}{\ln 4}=2{,}885 .$$
Тройка выигрывает у двойки около 5 %. Двойка и четвёрка, как видно, равны в точности — что и понятно: четверичный разряд есть пара двоичных.
Аргумент честный, но его надо взвешивать трезво: пять процентов — немного, а построить надёжный элемент с тремя устойчивыми состояниями заметно труднее, чем с двумя. Красота системы счисления и удобство электроники здесь тянут в разные стороны.
Машина
Прототип заработал в 1959 году. Элементная база — феррит-диодные ячейки собственной разработки Брусенцова (магнитные усилители, а не лампы): 3500 магнитных элементов, 330 транзисторов и всего 37 ламп. Отсюда главное практическое достоинство — надёжность и малое потребление.
| «Сетунь» | |
|---|---|
| Слово | 9 тритов (трайт — 6 тритов) |
| Оперативная память | 162 ячейки, доступ 45 мкс |
| Внешняя память | магнитный барабан, 3888 ячеек |
| Быстродействие | 4500 операций в секунду |
| Тактовая частота | 200 кГц |

Серийный выпуск шёл на Казанском заводе математических машин; до 1965 года выпущено 46 машин, около тридцати из них ушли в университеты. Машина оказалась дешёвой в эксплуатации и почти не ломалась — редкое для того времени сочетание.
В 1970 году появилась «Сетунь-70» — уже стековая машина с обратной польской записью, для которой Брусенцов построил диалоговую систему структурного программирования. Идея «программа как последовательность маленьких проверяемых процедур» была реализована там раньше, чем стала общим местом.
Почему не прижилась
Не из-за математики и не из-за техники.
Серийный выпуск прекратили, машины постепенно списали. Причины были ведомственные: троичная машина не вписывалась в план унификации, ориентированный сначала на собственные двоичные серии, а с 1969 года — на копирование архитектуры IBM System/360 в виде ЕС ЭВМ. К этому добавлялась и объективная сторона: вся мировая элементная база, от транзисторов до памяти, развивалась под двойку, и пятипроцентный теоретический выигрыш не мог перевесить многомиллиардные вложения в двоичную технику.
Брусенцов до конца жизни (он умер в 2014 году) продолжал работать в МГУ и настаивал на троичности — не только как на инженерном, но и как на логическом принципе: троичная логика с ценностями «истина, ложь, неизвестно» ближе к рассуждениям человека, чем двузначная.
След
Уравновешенная троичная система не исчезла.
Кнут в третьем томе «Искусства программирования» называет её, возможно, самой изящной системой счисления и разбирает подробно; его учебная машина MIX задумана так, чтобы работать и в двоичном, и в десятичном варианте, а троичный он обсуждает отдельно.
Тернарный поиск, троичные развороты в алгоритмах и представление знаковых величин без знакового бита — обычные приёмы.
И совсем недавний поворот: в 2024 году в машинном обучении появились модели, где веса нейронной сети принимают ровно три значения — $-1$, $0$ и $+1$. Такой вес занимает $\log_2 3\approx1{,}58$ бита, и в названиях моделей это число прямо фигурирует. Оказалось, что там, где важнее всего экономия памяти и энергии, тройка снова выигрывает — ровно по тому же расчёту $b/\ln b$, что и в 1958 году.
Задача. Запишите 2026 в уравновешенной троичной системе.
(Ответ: делим с остатком, приводя остаток 2 к $-1$ с переносом: $2026 = 2187 - 243 + 81 + 1$, то есть $1\,0\,\overline1\,1\,0\,0\,0\,1$. Проверка: $2187-243=1944$, $+81=2025$, $+1=2026$.)
Следующая точка: снова Москва — где на семинаре КолмогороваАндрей Николаевич КолмогоровДал вероятности аксиомы, турбулентности — закон, сложности — определение, а школьной математике в СССР — программу, по которой учились миллионы. гипотезу опровергнут за неделю и умножение впервые за тысячу лет подешевеет.