Код
#статьи

Что, если современные компьютеры работали бы на троичной логике

История не терпит сослагательного наклонения — даже история компьютеров. Так что не показывайте эту статью историкам и на всякий случай компьютерам.

cottonbro / pexels

Наименьший элемент, атом всего IT — это цифровой логический переключатель. Он получает на вход сигнал «0» или «1» и возвращает тоже ноль либо единицу.

Какие бы задачи ни решали с помощью компьютеров, но под капотом, на самом нижнем уровне, они всё равно сводятся к преобразованию этих двух чисел друг в друга.

Компьютерная логика — двоична. «Истина или ложь», «быть или не быть», «третьего не дано» — такая категоричность восходит ещё к силлогизмам Аристотеля и имеет свои недостатки.

Первые вычислительные машины разрабатывали в середине XX века. Когда решали, какими они будут, к двоичной логике накопилось уже немало претензий. Компьютеры могли быть другими.

«Сетунь» и синдром «Спутника»

Если бы мы снимали кино по этой истории, то по законам жанра оно открывалось бы масштабной вступительной сценой. Из таких обычно нарезают кадры для трейлера, хотя с сюжетом они чаще всего связаны слабо.

В центре нашей сцены — советский «Спутник». Космическая компьютерная графика под «бип-бип-бип» и музыку Свиридова, аршинные заголовки в газетах; советские инженеры, празднующие выход аппарата на орбиту; жители западных стран, тревожно глядящие в небо.

А за кадром — мрачный голос приглашённой звезды. Это был бы Стивен Кинг с отрывком из книги «Пляска смерти» — о том, как его ужаснула новость о полёте «Спутника» в октябре 1957 года.

Реакцию западных стран на этот запуск принято называть «Спутниковым кризисом». По его итогам правительство США усилило исследования космоса, а также финансирование вооружений, разведки, науки и образования в областях, с ним связанных.

Вычислительных машин это коснулось напрямую: свежесозданным NASA и DARPA требовались лучшие компьютеры, алгоритмы и программисты.

Поэтому, когда в 1959 году американцы узнали, что в МГУ построили ЭВМ с троичной логикой и загадочным названием «Сетунь», они весьма ей заинтересовались. Конечно, она не произвела такого фурора, как «Спутник», но само её существование открывало дорогу западным разработкам в области троичной логики.

Сейчас мы знаем, что начинания эти не привели к успеху ни на Западе, ни у нас. Причины этого по обе стороны железного занавеса были на удивление схожи: сложность предмета, отсутствие элементной базы, косность специалистов, волокита и жадность чиновников1.

Но всё-таки: а что, если бы тогда компьютеры стали не двоичными, а троичными? В каком мире мы бы сегодня жили?

Временно отключим внутреннего скептика и пессимиста и оценим самые вероятные перемены.

Компьютеры: проще, быстрее, дешевле

😏   Вероятность: 3/5

Базовый элемент двоичного компьютера, бит, заключает в себе два вида сигналов (0 и 1). Трит, базовый элемент троичного компьютера, — соответственно, три (например, −1, 0, 1).

Трит содержит примерно в полтора раза больше информации, чем бит. Проще говоря, бит «уменьшает незнание» об исследуемом объекте в два раза, а трит — уже в три раза.

Это означает, что для выполнения одинаковых задач троичному компьютеру нужно меньше логических элементов, чем двоичному. Например, для определения знака числа достаточно одного троичного элемента, а двоичных потребуется два.

Физически троичный элемент, конечно, сложнее и дороже двоичного, особенно на первых порах разработки. Однако в пересчёте на одно устройство их бы и требовалось меньше. Также можно предполагать, что новые материалы и массовое производство свели бы эту разницу к нулю.

Меньшее количество элементов, в свою очередь, ускоряет обработку информации, повышает надёжность, сокращает энергопотребление и тепловыделение, а также снижает стоимость. Ваши смартфон, ноутбук, десктоп, телевизор, фитнес-браслет стали бы легче, быстрее, холоднее и дешевле.

Компьютер «Сетунь» был бы не пасхалкой из ролика про русскую кибердеревню, а вполне типовым первым компьютером из большой и длинной промышленной линейки. Тем более что он уже тогда стоил дешевле и работал надёжнее, чем западные аналоги, хотя и в десятки раз медленнее.

Временно изгнанный скептик: упорно кричит что-то про рентабельность и дороговизну производства. Мы его игнорируем и вам советуем.

Программирование: естественнее

Вероятность: 3/5

Троичное основание вычислений, по мнению создателя «Сетуни», более естественно, поскольку многие вопросы в реальности предполагают тройственный, а не двойственный ответ:

  • Увеличить / Не изменять / Уменьшить;
  • Вперёд / Стой / Назад;
  • Победа / Ничья / Поражение;
  • Дружественный / Нейтральный / Враждебный;
  • Избыток / Норма / Недостаток.

И так далее.

Декомпозиция задач, то есть разбиение их на более простые подзадачи, понятные компьютеру, стала бы менее формальной, более гибкой и доступной обычному здравому смыслу. Это значит, что языки программирования и работу с компьютером освоило бы больше людей и за меньшее время.

Учитывая, что до 1980-х годов женщин в информатике было столько же, сколько мужчин, то, скорее всего, они отстояли бы паритет. Если вообще не превратили профессию программиста в преимущественно женскую: уж чего-чего, а здравого смысла у наших мам и бабушек всегда хватало.

И… тут даже не знаем, что дальше: слишком много вариантов. «Хабр» становится «Одноклассниками»? Мемы про мужскую логику? Долгопрудный — город невест?

Лишённый голоса пессимист: мрачно и шовинистически кивает.

Программы: разнообразнее

😊   Вероятность: 4/5

Программы, как и компьютеры, тоже состоят из простейших элементов — операций над числами или функций от значений. Функция или операция — это закон, который определённым образом преобразует входные значения, одно или несколько.

Так, квадратичная функция возводит входящее значение в квадрат, а операция сложения из двух значений делает их сумму.

В двоичной логике тоже есть функции и операции, которые по определённым правилам преобразуют нули и единицы снова в нули и единицы. Двоичных операций с одним входящим значением всего четыре:

  • Полное зануление: независимо от того, ноль поступил на вход или единица, операция выдаёт ноль.
  • Возврат единицы: превращение любого входного значения в единицу.
  • Отрицание: если на входе ноль, то результат единица, и наоборот.
  • Повторение: просто возвращает то, что поступило на вход.

В троичной же логике число возможных операций над одним входящим значением возрастает до 27. Они перечислены в табличке ниже. Плюс и минус указаны вместо 1 и −1, ноль остался нолём.

В случае двухместных (принимающих на вход два значения) операций разница возрастает на порядки: 16 вариантов в двоичной логике и, приготовьтесь, 19 683 в троичной. Девятнадцать тысяч шестьсот восемьдесят три!

Такое разнообразие уже среди базовых способов обработки информации позволяет надеяться, что для любой задачи в итоге обязательно найдётся оптимальный способ решения. А в процессе такого поиска мы бы создавали много очень разных программ.

Изгнанные скептик и пессимист: подражают звукам зоопарка.

День программиста: 31 августа

😅   Вероятность: 5/5

День программиста сейчас, в нашей двоичной реальности, отмечают в 256-й день года. Число 256 (28) выбрано потому, что это максимальная целая степень числа 2, значение которой не превышает числа дней в году.

Если бы компьютеры были троичными, то максимальная степень тройки, подчиняющаяся похожему условию, равнялась бы 243 (35). В невисокосный год праздник выпадал бы на 31 августа, аккурат перед Днём знаний. Совпадение? Не думаем.

Впрочем, пятая степень числа 3 — не слишком логичная дата. Вполне возможно, что праздник отмечался бы третьего марта (03.03) или, ещё лучше, в третью среду каждого третьего месяца. Главное, чтобы не раз в три года.

Внутренний пессимист: купается в фонтане из SimCity.

Квантовый компьютер: ближе и доступнее

😟    Вероятность: 2/5

Квантовый компьютер в теории позволяет вычислить сразу все возможные состояния рассматриваемого объекта — например, системы уравнений или молекул вещества. Он может во много-много раз ускорить всё высокотехнологичное производство.

Основой квантовых вычислений является кубит — квантовый бит. У него, как и у обычного бита, два возможных состояния, но вдобавок к ним есть и третье — состояние суперпозиции. Правда ведь, похоже на обычный неквантовый трит, упомянутый выше?

Поэтому в мире троичных компьютеров люди быстрее дошли бы до идеи кубита и реализации квантового компьютера. Квантовые вычисления попросту становятся привычнее, ими занимается больше людей, и отрасль развивается быстрее, раньше попадая под действие закона Мура.

Так что вероятные выгоды от внедрения квантовых компьютеров ждали бы нас уже сегодня: персонализированные лекарства, вещества и материалы с заранее заданными свойствами, массовый беспилотный транспорт; возможно, настоящий искусственный интеллект.

И, конечно, никакого коронавируса.

Внутренний скептик: демонстративно надевает маску.

А что ещё?

Только о приходе квантовых компьютеров и его последствиях можно написать уйму статей. Например, у нас была бы другая криптография, потому что практически все сегодняшние шифры мощный квантовый компьютер способен взломать буквально за доли секунд (спасибо алгоритму Шора).

А это означает другую связь (включая Интернет), новые подходы к безопасности, иные дипломатию и банковскую систему. Не было бы и блокчейна в его сегодняшнем виде, а развивался бы другой, постквантовый блокчейн.

Что касается нетехнических последствий, то, думается, Виктор Пелевин не написал бы, что «в реальности возможных ответов всегда три», — все бы знали это и без него. А потому — хочется верить — и конфликтов между людьми разных взглядов, поколений и убеждений было бы меньше.

Так, отказ от бинарности, например, в гендерной идентификации и связанных с ней языковых категориях, сегодня не был бы столь взрывным, воспринимался мягче. Поколения, не заточённые внутри железной логики «или-или», были бы избавлены от бунта против условностей и жёсткого неприятия любой непохожести.

Наконец, наши курсы и профессии направления «Программирование» стали бы совсем другими. В чём мы уверены — так это в том, что точно так же старались бы сделать их ещё увлекательнее, содержательнее и полезнее. Приходите! Для начала разберёмся с двоичными компьютерами, а там и Троичная эра подоспеет.

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована