Давно изучаемая, но нечасто применяемая вычислительная система с основанием 3 всё же может найти применение в кибербезопасности.
Как рассказывали детям 1970-х годов в Schoolhouse Rock!, три — это магическое число. Три поросенка; три кровати, миски и медведя для Златовласки; три трилогии «Звёздных войн». Чтобы табуретка стояла сама по себе, нужно как минимум три ножки, и как минимум три точки, чтобы определить треугольник.
Число 3 также предполагает другой способ счёта. Наша знакомая десятичная система счисления с основанием 10 использует 10 цифр от нуля до 9. Двоичная система, наш цифровой lingua franca, представляет числа, используя только две цифры: 0 и 1.
Но математики давно изучают число три. Рассмотрим, например, основание 3 или троичную систему, которая использует три цифры. Обычно это цифры 0, 1 и 2, но так же используются и симметричные обозначения: –1, 0 и 1.
Отличительной чертой троичной записи является ее невероятная эффективность. С помощью двух двоичных битов можно представить четыре числа. Два «трита» — каждый с тремя различными состояниями — позволяют представить девять различных чисел. Число, требующее 42 бита, потребует всего 27 тритов.
Если система с тремя состояниями настолько эффективна, вы можете себе представить, что система с четырьмя или пятью состояниями будет еще более эффективной. Но чем больше цифр вам требуется, тем больше места вам понадобится. Оказывается, что троичная система является наиболее экономичной из всех возможных целочисленных систем для представления больших чисел.
Чтобы понять почему это так, рассмотрим важный показатель, который подсчитывает, сколько места системе понадобится для хранения данных. Вы начинаете с основания системы счисления и умножаете его на количество цифр, необходимых для представления некоторого большого числа в этой системе. Например, число 100 000 в десятичной системе счисления требует шести цифр. Его «экономичность» составляет 10 × 6 = 60. В системе счисления с основанием 2 тому же числу требуется 17 цифр, поэтому его экономичность составляет 2 × 17 = 34. А в системе счисления с основанием 3 требуется 11 цифр, поэтому его экономичность составляет 3 × 11 = 33. Для больших чисел основание 3 имеет лучшую экономичность, чем любое другое целое основание. (Удивительно, но если вы позволите основанию быть любым действительным числом, а не только целым, то наиболее эффективным основанием является иррациональное число e.)
Вот математическое доказательство этого:
Обозначим p основание системы счисления, n — количество требуемых знаков. Тогда получимцифр, требуемых для записи этого набора знаков в заданной системе счисления Количество чисел, которое при этом можно записать, будет равно .
Рассмотрим это выражение как функцию переменной p, принимающей любые положительные значения: .
Найдём максимум этой функции, для этого найдём, когда первая производная от функции будет равна 0,, производная будет равна 0 когда , т.е. когда.
Слева от точкипроизводная положительна, а справа отрицательна, таким образом, учитывая теоремы дифференциального исчисления, получаем, что при функция действительно имеет максимум.
Из целых чисел максимум функция имеет при. Поэтому троичная система счисления — самая экономичная целочисленная система счисления.
В дополнение к числовой эффективности основание 3 предлагает вычислительные преимущества. Оно предлагает способ сократить количество запросов, необходимых для ответа на вопросы с более чем двумя возможными ответами. Двоичная логическая система может отвечать только «да» или «нет». Поэтому, если вы сравниваете два числа, x и y, чтобы узнать, какое из них больше, вы можете сначала спросить компьютер: «x меньше y?» Если ответ «нет», вам нужен второй запрос: «x равен y?» Если ответ «да», то они равны; если ответ «нет», то y меньше x.
Система, использующая троичную логику, может дать один из трех ответов. Благодаря этому, ей требуется только один запрос: «x меньше, равно или больше y?»
Несмотря на естественные преимущества, вычисления на основе 3 так и не получили распространения, хотя многие математики восхищались их эффективностью. В 1840 году английский печатник, изобретатель, банкир и математик-самоучка по имени Томас Фаулер изобрел троичную вычислительную машину для расчета взвешенных значений налогов и процентов. «После этого в течение многих лет делалось очень мало», — сказал Бертран Камбу, прикладной физик из Университета Северной Аризоны.
В 1950 году, на заре цифровой эпохи, в большом докладе о вычислительной технике того времени говорилось о вычислительном преимуществе троичной системы. А осенью 1958 года гости Советского Союза сообщили, что инженеры там разрабатывают троичную вычислительную машину под названием «Сетунь» — первую современную вычислительную машину, основанную на троичной логике и аппаратном обеспечении. Советские ученые построили десятки машин «Сетунь». На Habr есть хорошая статья про эти машины.
Почему троичные вычисления не прижились? Основной причиной была условность. Хотя советские ученые создавали троичные устройства, остальной мир сосредоточился на разработке оборудования и программного обеспечения на основе коммутационных схем — основы двоичных вычислений. Двоичные вычисления было проще реализовать.
Но в последние несколько лет произошёл некоторый прогресс. Инженеры предложили способы создания троичных логических систем даже на двоичном оборудовании. А Камбу при поддержке американских военных разрабатывает системы кибербезопасности, использующие вычисления по основанию 3. В работах, опубликованных в 2018 и 2019 годах, он и его коллеги строго описали троичную систему, которая могла бы заменить существующую инфраструктуру открытых ключей, включающую цифровые ключи для шифрования или дешифрования киберкоммуникаций. По его словам, переход от битов к тритам значительно снижает частоту ошибок, поскольку троичные состояния лучше управляют неустойчивой информацией.
Автор перевода @arielf
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
-15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.
Комментарии (52)
nbkgroup
22.10.2024 11:37Поискал упоминания "Хабра" в оригинале, но вместо них нашел странный перевод dozens не "дюжины", а почему-то "десятки".
myswordishatred
22.10.2024 11:37"Dozen" это, безусловно, "дюжина", но конструкция типа "There are dozens of them" переводится на русский всё же как "Их десятки". Тут же не конкретное количество важно, а порядок. Сравните с "Сотни исследований", "Тысячи примеров".
В общем, контекст важен для перевода.
kuzzdra
22.10.2024 11:37Пока не придумали хорошую тристабильную ячейку памяти, и 3-уровневый логический элемент тоже - у троичной системы нет никаких преимуществ. Несмотря на то, что 3 ближе к 2.718 чем 2 ;)
Tihron
22.10.2024 11:37Я придумал, как это все сделать на биполярных транзисторах, ведь там есть такой, которому необходимо, чтобы ток тек в базу и такой, которому необходимо, чтобы ток тек из базы (P и N канальные транзисторы). Итого у нас получается три состояния тока: течет в одном направлении, течет в другом направлении и не течет.
Tihron
22.10.2024 11:37Но биполярные транзисторы менее энергоэффективны и больше по размеру, чем полевые, которых кучу пихают в процессоры. Вот придут мне N и P канальные транзисторы, буду собирать сначала двоичные, для разогрева, а потом и троичные схемы. Может, когда-нибудь и до полноценного процессора дойду
Tihron
22.10.2024 11:37Правда, тогда стоит и материнскую плату создать. Идеи по количеству тритов на трайт у меня есть, 5, тогда будет 243 значения. И придумывать троичные ячейки не надо, можно сделать схему, которая будет преобразовывать троичные данные в двоичные и наоборот. К примеру, 121 + Число, в троичной симметричной ссч, а в память запишется число от 0 до 243. То же самое можно проделать с жёсткими дисками. А когда (и если) появятся системы хранения с 3 состояниями на ячейку, можно перейти на них
quarus
22.10.2024 11:37Про "экономичность"..
Если взять 6-значное число не 100'000, а 999'999, то экономичность 10-го основания останется прежней (60), а для 2-ной и 3-ной окажется 40 и 39. Т.о. соотношения "экономичностей" плавают. Отличия 2-ной и 3-ной экономичностей лежат в пределах 2,5-3%. Предел "существенности", насколько я помню - 5%... Сейчас все оправдывают многократно раздутое ПО чем угодно, только не здравым смыслом, а здесь мы пытаемся выжать из кошечки ещё капельку... в чём смысл?
Но, безусловно - теоретические раскладки правильные.
Tihron
22.10.2024 11:37Теоретические — да. Но компьютеры работают уже с 32 битами, и это уже "старые" компьютеры. Там число максимальное равно ~4 миллиарда. Там разница будет существеннее. С 64 битами ещё больше. В общем, весело это все
andarko
22.10.2024 11:37А откуда такая уверенность, что трит экономичнее бита в 1,5 раза? Этот параметр "экономичность" нигде, кроме как на бумаге у математика смысла не имеет. В реальном мире всё сильно сложнее. Цена тритов будет не в 1,5 раза больше, сложность в изготовлении не в 1,5 раза больше, энергопотребленре и т. д. Все параметры будут иметь свое собственное отношение. К тому же ЦП, ОЗУ, ПЗУ, шины, всё будет иметь свои собственные пропорции в разнице этих параметров между тритом и битом
А "экономичность" у автора никакого применения в реальном мире не имеет вообще
alexhu
22.10.2024 11:37«Сетунь» — единственный серийный троичный компьютер, разработана в 1959 году в стенах вычислительного центра Московского государственного университета. Кроме серийных, были ещё опытные образцы в разных институтах СССР. До 80-х годов не утихали такие попытки, обсуждения, оценки преимуществ, закрытые разработки для спецнаправлений и эксперименты. Книги писали, в журналах публикации были.
Всё это проиграло конкурентную гонку и умерло ещё до распада союза. А уж когда фирма IBM зашла на территорию союза, про другие версии развития компьютеров начали быстро забывать. Аналоговые компьютеры делали, к слову, для моделирования и тоже у них были какие то преимущества.
MountainGoat
22.10.2024 11:37Вот только выиграла не архитектура, выиграла стандартизация по всему миру и поддержка крупными производителями.
alexhu
22.10.2024 11:37Там и с архитектурой были большие проблемы. Я уже не помню деталей, только это описывалось в науч. поп. лит. И сами разработчики признали не то что бы бесперспективность, а стеклянный потолок в возможностях всей вычислительной системы. Нужны были десятилетия для решения тех проблем, которые уже были решены на двоичной логике - как аппаратные, так и со стороны математики и программных средств.
kuzzdra
22.10.2024 11:37Фишка Сетуни была в том, то для ферритовой памяти 3-стабильная ячейка была немного дешевле чем 2 2-стабильные.Но ферритовая память стремительно устарела,
alexhu
22.10.2024 11:37Ну может помните, как ещё в середине 90 Билл Гейтс заявлял, что для самого мощного персонального компьютера хватит 600 Кб памяти, а на практике 300 кб памяти считалось топовым компом. Так что даже в 90 могли сделать такой объём памяти на ферритовых кольцах, это не было большой проблемой.
Проблемой стало то, что Intel, Ibm, M$ выпускали новые версии своих продуктов каждые полгода и каждая их новая версия была революцией среди развитых кап. стран, а сов. союз даже и мечтать не мог о таком развитии. Вообще никак не мог такого сделать, даже сделать на два порядка хуже - это нужно сверх усилие всех министерств и его не могли даже запланировать.
И когда привезли открытую архитектуру то каждый самостоятельно мог собрать, модернизировать и работать за компом. И мощности даже слабеньких персональных компьютеров тех времён превосходили вычислительные комплексы на много сотен метров занимаемых площадей и много одновременно занятых их обслуживанием техников (тогда так они назывались). И программ завались - типография на столе, офисный пакет, табличный и текстовый процессор - да это была воплощённая сказка. И когда уже специалисты пощупали это своими руками и мозгами, то вопросы о специализированных процессорах, и хитрой математике для этих слабеньких аппаратных системах, отошли на десятый план. Работай сколько нужно и результаты вмещаются на дискете. Я тогда учился, но помню всё это.
kuzzdra
22.10.2024 11:37Так что даже в 90 могли сделать такой объём памяти на ферритовых кольцах, это не было большой проблемой.
Память на ферритовых кольцах - это ручная работа. Это очень, ОЧЕНЬ дорого. Это очень, ОЧЕНЬ громоздко. Как только научились делать память на микросхемах - так и перешли на нее. А ключи внутри микросхем - двоичные. На этом троичная логика и закончилась.
Даже без БГ все прочие, даже полностью советские компьютеры - двоичные.
piton_nsk
22.10.2024 11:37Ну может помните, как ещё в середине 90 Билл Гейтс заявлял, что для самого мощного персонального компьютера хватит 600 Кб памяти, а на практике 300 кб памяти считалось топовым компом.
Я помню что типичный современный комп середины девяностых имел мегабайты памяти. У той же 95 винды минимальные системные требования 4 мегабайта.
Ему часто приписывают такое заявление, но разумеется, не в середине 90-х, а в начале 80-х. Сам он это отрицает. Судя по всему имеет место быть испорченный телефон - кто-то (может и Гейтс) что-то про память сказал, через несколько итераций контекст был утерян, Биллу приписали очевидную глупость и понеслось.
Dupych
22.10.2024 11:37Магическое число 1
Всегда первый пункт с единицы.
Либо ничто либо хоть 1 атом и это .
уже материя.
Одна точка уже геометрическая точка.
Из точек те едениц состоит все
При деление на 1 любого числа получаем то же число.
У нашей чолнечной системы одно солнце.
Новое число десяток сотен и тд начинается с 1.
1 это Истина.
И снова еденица. Только она придает вес даже ничему.
Matie_Bal
22.10.2024 11:37По моему шенон со своей формулой энтропии уже доказал почему у бита должно быть именно 2 значения.
GospodinKolhoznik
22.10.2024 11:37Как раз таки теоретически 3 немножко оптимальнее, т.к.ближк к числу е. Но технологически оптимальнее 2.
Underskyer1
22.10.2024 11:37И всё, что это за странная метрика "экономичность"? В статье говорится, как её вычислить, но не раскрывается её смысл. Так ведь для любого основания можно придумать подходящую метрику, доказывающую "уникальность" этого основания...
amkartashov
22.10.2024 11:37экономичность = количество разрядов * количество возможных значений в разряде
Байт - 8 разрядов, в каждом либо 0 либо 1 - "экономичность" = 16
Байт позволяет выразить 256 различных чисел.
Схожий по количеству чисел "трайт", который позволяет выразить 243 (3^5) различных числа будет иметь "экономичность" 15.
Разумеется, это всё условности потому что у бит(ов?) и у трит(ов?) "размеры" разряда могут соотносится не как 2:3.wataru
22.10.2024 11:37экономичность = количество разрядов * количество возможных значений в разряде
Почему вы перемножаете количество разрядов с количеством различных значений разряда? Что вы считаете? Сколько разноцветных камней вам надо, чтобы записать любое число, меньше либо равное этому? Но это не имеет никакого смысла.
amkartashov
22.10.2024 11:37представь, что у тебя каждый разряд в числе - это мешочек для значения цифры. Для двоичных этот мешочек либо пуст, либо вмещает 1, для троичных - может вмещать от 0 до 2х и т.д. То есть количество разрядов * количество возможных значений - это некий "объём" хранилища для чисел, и чем больше этот объём, тем больше требуется чего-то (например ткани, если это реально мешочки)
wataru
22.10.2024 11:37Для двоичных этот мешочек либо пуст, либо вмещает 1, для троичных - может вмещать от 0 до 2х
Представить-то можно что угодно. Какой смысл у этих мешочков? Почему мешочек для 10-чной системы счисления должен быть размера 10? Он же несет только одну цифру. Почему цифра '9' ровно в 10 раз больше, чем цифра '0'? Если размер цифры равен ее значению, то тогда надо умножать не на основание, а на основание -1 - ведь цифра 0 места не занимает.
amkartashov
22.10.2024 11:37Почему цифра '9' ровно в 10 раз больше, чем цифра '0'?
Да не цифра. А разряд - некое устройство, в которое можно "записать" цифру.
Если тебе надо различать только 0 и 1 - это один уровень сложности, если 0-9 - другой.
Если разряд кодируется уровнем электрического напряжения или количеством электрического заряда, то тебе нужно в 10 раз лучшую точность измерения или в 10 раз большую ёмкость.Если ты в качестве разряда используешь вёдра с водой, то для 0,1 можно условно напёрсток использовать в котором есть или отсутствует вода, а для разряда умеющего хранить 0-9 надо использовать сосуд, в котором можно чётко увидеть разницу между 8 и 9, например.
Если ты используешь бумагу и чернила, для двоичной системы можно использовать просто точку: есть точка - 1, нет точки - 0. Для изображения "цифр" от 0 до 9 места побольше понадобится.
Так понятнее, или мне дальше тебе разжёвывать?
wataru
22.10.2024 11:37Нужно. Пока кажется, что вы натягиваете сову на глобус.
Ясно, что 10-ричной системе счисления каждый разряд имеет 10 различных вариантов. Почему варианты всех разрядов складываются - все еще непонятно.
В аналогии с сосудом проблема: емкость нужна размера N-1 для N различных значений. У наперстка 2 уровня: пустота и полный. Для троичной системы можно взять стакан ровно в 2 раза выше наперстка и с той же точностью можно разделить 0, 1 и 2.
Если считать деления на сосуде, то нет никакой физической причины их складывать. Что вы считаете, сколько вам краски надо, что бы нанести все деления? Почему надо рисовать деление в нуле? Как это описывает "экономичность" системы счисления?
С бумагой и чернилами та же проблема. Если ставить точки, то для 10-ричной системы надо место под 9 точек, а не 10.
Все еще не вижу логику, почему для одной цифры в N-ичной системы счисления требудется N места. Еще можно как-то натянуть N-1.
А если уж мы про емкость записи начали говорить, то тут надо бы по уму логарифмы и биты использовать. Размер информации и вот это вот все. И вот тут для записи в 10-ричной системе требуется в ln(10)/ln(2) раз больше места, а не в 10/2.
amkartashov
22.10.2024 11:37Чел, можно я себя процитирую, а?
> Разумеется, это всё условности потому что у бит(ов?) и у трит(ов?) "размеры" разряда могут соотносится не как 2:3.iRumba
22.10.2024 11:37А чо, если раскрасить ваши аналогии? Для мешочка по десятичное число не нужно больше ткани, потому что 1 будет означать синий камушек, 2 - зелёный и ТД. То же самое с точками на бумаге.
Хотя, наверное, усложнится чтение... Или нет?
amkartashov
22.10.2024 11:37Разряд, в котором можно хранить больше разных цифр, не может требовать меньше ресурсов. Просто логически, если у вас сейчас технологии позволяют поместить в разряд одну из N различных цифр используя P ресурсов, то для всех K<N вы можете использовать тот же разряд из P ресурсов.
Не особо важно, что это за ресурсы: объём, площадь, время, масса, заряд, энергия, мощность вычислительного устройства, которое оперирует этими разрядами, сложность логики для распознавания цифры в разряде и т.д.. В формуле экономичности, используемой автором статьи (кол-во разрядов * кол-во цифр) предполагается что количество ресурсов для одного разряда прямо пропорционально количеству цифр, что, конечно же, может не соответствовать действительности.
wataru
22.10.2024 11:37предполагается что количество ресурсов для одного разряда прямо пропорционально количеству цифр, что, конечно же, может не соответствовать действительности.
Ну вот вопрос, откуда вообще это предположение взялось-то? Причем оно появилось так явно, что аж целый термин "экономичность" ввели.
kuzzdra
22.10.2024 11:37Хотя, наверное, усложнится чтение... Или нет?
Ну, для чтения 1 бита достаточно 1 транзистора. Для чтения 1 трита нужно 2 транзистора. Хотя на 2 транзисторах можно организовать чтение 2 битов, что даст нам 4 возможных состояния вместо 3. Упсь, экономия такая экономная ;)
На самом деле, конечно, можна извернуться. Придумать вместо транзисторов другие структуры.. И технологию их изготовления. Можно работать не с уровнями сигнала, а например, с фазами. Но это перевернет всю схемотехнику. Умножение станет дешевой операцией, а сложение - наоборот.
gnomeby
22.10.2024 11:37Двоичная логическая система может отвечать только «да» или «нет». Поэтому, если вы сравниваете два числа, x и y, чтобы узнать, какое из них больше, вы можете сначала спросить компьютер: «x меньше y?» Если ответ «нет», вам нужен второй запрос: «x равен y?»
Факт неверный. Оно зависит от реализации. Например в x86 команда CMP просто выставляет в регистре флагов результат сравнения, в котором есть сразу и бит равенства и бит знака.
gnomeby
22.10.2024 11:37Эхххх, опять. Ну ладно расчехлим пулемёт:
Троичная логика - хорошая штука, когда у вас линейная зависимость стоимости от длины условного "регистра". В этой ситуации не только троичная логика хороша, но и любая другая. Для квантовых компьютеров например четверичная логика рассматривается, ибо так нужно будет меньше куквадритов "согласовывать".
Ну а теперь недостатки:
Нет элементной базы. Гейты есть, а памяти нет. В принципе можно эмулировать через двоичную, просто не все вариации значений будут использоваться.
Какую систему соединения гейтов будем использовать: двухпроводную? трехпроводную? Какими уровнями напряжения будем оперировать? Отрицательные значения берём? Все производители сделают одинаковый стандарт или как обычно у каждого свой вариант несовместимый с другими?
Больший разброс напряжений означает меньшую устойчивость к помехам, а значит потребует снизить частоту.
Самое главное зачем? Сложение быстрее работать не будет, оно и так выполняется над всеми битами одновременно благодаря carry look ahead.
Потенциал от появления "Третьего значения" сомнителен. Например NULL в SQL итак существует и в двоичном компьютере, радости это не добавляет.
novoselov
22.10.2024 11:37Осталось научится кодировать троичное состояние в спине фотона и хранить в спине глюонов.
melodictsk
22.10.2024 11:37Памяти то есть, как пример ссд. Mlc, tlc, qlc.
gnomeby
22.10.2024 11:37В указанных вами видах памяти кодируется не количество состояний на ячейку, а количество бит на ячейку: https://en.wikipedia.org/wiki/Multi-level_cell
Spetros
22.10.2024 11:37Биты кодируются разными уровнями напряжений в одной ячейке.
https://www.kioxia.com/en-jp/rd/technology/multi-level-cell.html
gnomeby
22.10.2024 11:37Да, вы меня убедили. Несмотря на то что на выходе 2^n состояний, похоже это просто привязка к двоичной логике, можно делать и 3^n состояний.
Но это ПЗУ, а что по поводу ОЗУ, есть ли там?
Spetros
22.10.2024 11:37Концепция аналогична. Многоуровневые ячейки ОЗУ потребуют обновления данных после считывания. Пример патента описывающего многоуровневую (не менее трёх уровней) память:
slonik_nocry
22.10.2024 11:37у троичной нет никаких приемуществ. это просто двоичная система с избыточным битом. эри этом менее универсальная. Так как если нам нужно 4 варианта нам придется выделить аж 6 вариантов. А как это может выглядеть на транзисторах? а если транзисторы могут иметь 3 состояния. Но они всегда с браком и не идеальны и могут либо 0.0001 либо 0.9998 И чем больше вариантов будет труднее считать. Давайте уже дождемся либо химических процессоров либо квантовых либо синаптических. Но пока у нас кремний и полупроводники, пусть остаеться так как есть
gnomeby
22.10.2024 11:37Следует отметить, что ваш комментарий относится только к реализации троичных гейтов на двоичных гейтах.
AYamangulov
22.10.2024 11:37Вообще-то, на полупроводниках также возможно реализовать троичную логику и множественную логику любого уровня, например, с использованием дополнительных затворов в полевых транзисторах (когда затворов больше одного и на выходе фиксируется импульс разной величны). Такие работы в свое время начинались, помню, что сам лично читал какие-то статьи на эту тему в 80-х годах 20 в. Но потом двоичный мейнстрим просто потушил эти ветки развития технологий. Но при наличии достаточных оснований и стимулов, подобные работы вполне могут и возобновить.
kuzzdra
22.10.2024 11:37когда затворов больше одного и на выходе фиксируется импульс разной величны
Можно всё, что не противоречит закону сохранения энергии. Но зачем? Усложнение схемотехники, чтобы что?
wataru
22.10.2024 11:37Вы начинаете с основания системы счисления и умножаете его на количество цифр
Почему? Как умножение основания на количество цифр как-то описывает экономичность системы счисления? Какой физический смысл смешивать количество различных значений разряда и количество разрядов?
piton_nsk
22.10.2024 11:37Ну это же классика, погуглите фразу "экономичность системы счисления", вот к примеру.
wataru
22.10.2024 11:37Странная логика. "Берем N цифр, и разбиваем их на группы по b. Каждая группа относится к одному разряду и задает b различный цифр в нем. Т.е. понятно, что такую процедуру можно придумать, но какой у нее физический смысл - все еще непонятно. Почему нам надо каждому разряду выдать по своей собственной копии цифры "2"?
mclander
Осталось одеть на кота колокольчик
mclander
В смысле придумать схему ячейки памяти, которая "тратит" на два трита, хотя бы не сильно больше транзисторов, чем на три бита