Сбалансированный тройной - Balanced ternary

Сбалансированный тройной это тройной система счисления (т.е. основание 3 с тремя цифры ), который использует сбалансированное представление цифр со знаком из целые числа в котором цифры имеют значения −1, 0, и 1. Это контрастирует со стандартной (несбалансированной) троичной системой, в которой цифры имеют значения 0, 1 и 2. Сбалансированная троичная система может представлять все целые числа без использования отдельной знак минус; значение первой ненулевой цифры числа имеет знак самого числа. В то время как двоичные числа с цифрами 0 и 1 обеспечивают простейшую позиционную систему счисления для натуральные числа (или для положительных целых чисел, если в качестве цифр используются 1 и 2), сбалансированная троичная система обеспечивает простейший автономный[необходимо определение ] позиционная система счисления для целые числа. Сбалансированная тройная система является примером нестандартная позиционная система счисления. Он использовался в некоторых ранних компьютерах[1] а также в некоторых решениях головоломки с балансом.[2]

В разных источниках используются разные глифы для представления трех цифр в сбалансированной троичной системе. В этой статье T (похожий на лигатура знака минус и 1) представляет −1, пока 0 и 1 представляют себя. Другие соглашения включают использование '-' и '+' для представления -1 и 1 соответственно, или использование Греческая буква тета (Θ), который напоминает знак минус в круге, обозначающий −1. В публикациях о Сетунь компьютер, −1 представляется перевернутым 1: "1".[1]

Сбалансированная тройка рано появляется в Майкл Стифель книга Арифметика Интегра (1544).[3] Это также встречается в произведениях Иоганн Кеплер и Леон Лаланн. Связанные схемы подписанных цифр в других базах обсуждались Джон Колсон, Джон Лесли, Огюстен-Луи Коши, и, возможно, даже древнеиндийский Веды.[2]

Определение

Позволять обозначим множество символы (также называемый глифы или же символы) , где символ иногда используется вместо Определить целое число -значная функция к

[примечание 1] и

где правые части - целые числа с их обычными (десятичными) значениями. Эта функция, это то, что строго и формально устанавливает, как целочисленные значения присваиваются символам / глифам в Одним из преимуществ этого формализма является то, что определение «целых чисел» (как бы они ни определялись) не связано с какой-либо конкретной системой их записи / представления; таким образом, эти две различные (хотя и тесно связанные) концепции сохраняются отдельно.

Набор вместе с функцией образует сбалансированный представление цифр со знаком называется сбалансированный тройной система. Его можно использовать для представления целых и действительных чисел.

Тернарное целочисленное вычисление

Позволять быть Клини плюс из , который представляет собой множество всей конечной длины соединенный струны одного или нескольких символов (называемых его цифры) куда является целым неотрицательным числом и все цифры взяты из В Начните из это символ (справа), его конец является (слева), а его длина является . В троичная оценка это функция определяется путем присвоения каждой строке целое число

Струна представляет (относительно ) целое число Значение альтернативно может быть обозначено как Карта является сюръективный но не инъективно, так как, например, Однако каждое целое число имеет ровно одно представление под это не конец (слева) с символом т.е.

Если и тогда удовлетворяет:

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

Это означает, что для каждой строки

что на словах говорит, что ведущий символы (слева в строке из 2 или более символов) не влияют на результирующее значение.

Следующие примеры иллюстрируют, как некоторые значения можно вычислить, где (как и раньше) все целые числа записываются в десятичной системе счисления (основание 10), а все элементы просто символы.

и используя указанное выше рекуррентное соотношение

Преобразование в десятичное

В сбалансированной троичной системе значение цифры п места слева от точка счисления это произведение цифры и 3п. Это полезно при преобразовании десятичных чисел в сбалансированные троичные. В следующих строках, обозначающих сбалансированную троичную систему, есть суффикс, bal3. Например,

10bal3 = 1 × 31 + 0 × 30 = 310
10ᴛbal3 = 1 × 32 + 0 × 31 + (−1) × 30 = 810
−910 = −1 × 32 + 0 × 31 + 0 × 30 = ᴛ00bal3
810 = 1 × 32 + 0 × 31 + (−1) × 30 = 10ᴛbal3

Точно так же первое место справа от точки счисления занимает 3−1 = 1/3, второе место занимает 3−2 = 1/9, и так далее. Например,

2/310 = −1 + 1/3 = −1 × 30 + 1 × 3−1 = ᴛ.1bal3.
ДекабрьBal3РасширениеДекабрьBal3Расширение
000
11+1−1−1
21ᴛ+3−1−2ᴛ1−3+1
310+3−3ᴛ0−3
411+3+1−4ᴛᴛ−3−1
51ᴛᴛ+9−3−1−5ᴛ11−9+3+1
61ᴛ0+9−3−6ᴛ10−9+3
71ᴛ1+9−3+1−7ᴛ1ᴛ−9+3−1
810ᴛ+9−1−8ᴛ01−9+1
9100+9−9ᴛ00−9
10101+9+1−10ᴛ0ᴛ−9−1
1111ᴛ+9+3−1−11ᴛᴛ1−9−3+1
12110+9+3−12ᴛᴛ0−9−3
13111+9+3+1−13ᴛᴛᴛ−9−3−1

Целое число делится на три тогда и только тогда, когда цифра в разряде единиц равна нулю.

Мы можем проверить паритет сбалансированного троичного целого числа путем проверки четности суммы всех триц. Эта сумма имеет ту же четность, что и само целое число.

Сбалансированная троичная система также может быть расширена до дробных чисел, подобно тому, как десятичные числа записываются справа от точка счисления.[4]

Десятичный−0.9−0.8−0.7−0.6−0.5−0.4−0.3−0.2−0.10
Сбалансированный троичныйᴛ.010ᴛᴛ.1ᴛᴛ1ᴛ.10ᴛ0ᴛ.11ᴛᴛ0. или ᴛ.10.ᴛᴛ110.ᴛ0100.ᴛ11ᴛ0.0ᴛ010
Десятичный0.90.80.70.60.50.40.30.20.10
Сбалансированный троичный1.0ᴛ011.ᴛ11ᴛ1.ᴛ0101.ᴛᴛ110.1 или 1.0.11ᴛᴛ0.10ᴛ00.1ᴛᴛ10.010ᴛ0

В десятичном или двоичном формате целочисленные значения и завершающие дроби имеют несколько представлений. Например, 1/10 = 0.1 = 0.10 = 0.09. И, 1/2 = 0.12 = 0.102 = 0.012. Некоторые сбалансированные троичные дроби также имеют несколько представлений. Например, 1/6 = 0.1bal3 = 0.01bal3. Конечно, в десятичном и двоичном формате мы можем опустить крайние правые конечные бесконечные нули после точки счисления и получить представление целого числа или конечной дроби. Но в сбалансированной троичной системе мы не можем опустить крайнюю правую конечную конечную цифру -1 после точки счисления, чтобы получить представление целого числа или конечной дроби.

Дональд Кнут[5] указал, что усечение и округление - это одна и та же операция в сбалансированной троичной системе - они дают точно такой же результат (свойство, разделяемое с другими сбалансированными системами счисления). Номер 1/2 не исключение; он имеет два одинаково действительных представления и два равнозначных усечения: 0.1 (округлить до 0 и усечь до 0) и 1. (округлить до 1 и усечь до 1). Со странным основание, двойное округление также эквивалентно прямому округлению до конечной точности, в отличие от четной системы счисления.

Основные операции - сложение, вычитание, умножение и деление - выполняются так же, как и в обычной троичной системе. Умножение на два может быть выполнено путем добавления числа к самому себе или вычитания самого себя после сдвига влево.

Арифметический сдвиг влево сбалансированного троичного числа эквивалентен умножению на (положительную, целую) степень 3; а арифметический сдвиг вправо сбалансированного троичного числа эквивалентен делению на (положительную, целую) степень числа 3.

Преобразование в дробь и обратно

Дробная частьСбалансированный тройнойДробная частьСбалансированный тройной
111/110.01ᴛ11
1/20.11.1/120.01ᴛ
1/30.11/130.01ᴛ
1/40.1ᴛ1/140.01ᴛ0ᴛ1
1/50.1ᴛᴛ11/150.01ᴛᴛ1
1/60.010.11/160.01ᴛᴛ
1/70.0110ᴛᴛ1/170.01ᴛᴛᴛ10ᴛ0ᴛ111ᴛ01
1/80.011/180.0010.01
1/90.011/190.00111ᴛ10100ᴛᴛᴛ1ᴛ0ᴛ
1/100.010ᴛ1/200.0011

Преобразование повторяющегося сбалансированного троичного числа в дробь аналогично преобразование повторяющейся десятичной дроби. Например (из-за 111111bal3 = (36 − 1/3 − 1)10):

Иррациональные числа

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

Сбалансированные троичные расширения дается в OEIS в качестве A331313, что из в A331990.

Преобразование из троичного

Несбалансированную троичную систему можно преобразовать в сбалансированную троичную систему двумя способами:

  • Добавьте 1 трит за тритоном из первого ненулевого тритта с переносом, а затем вычтите 1 тритт за тритоном из того же тритта без заимствования. Например,
    0213 + 113 = 1023, 1023 − 113 = 1T1bal3 = 710.
  • Если 2 присутствует в троичной системе, превратите ее в 1T. Например,
    02123 = 0010bal3 + 1T00bal3 + 001Tbal3 = 10ТТbal3 = 2310
СбалансированныйЛогикаНеподписанный
1Истинный2
0Неизвестный1
ТЛожь0

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

который представлен как все в традиционной или предвзятой форме.[6]

В результате, если эти два представления используются для сбалансированных и беззнаковых троичных чисел, беззнаковый п-trit положительное троичное значение может быть преобразовано в сбалансированную форму путем добавления смещения б а положительное сбалансированное число может быть преобразовано в беззнаковую форму путем вычитания смещения б. Кроме того, если Икс и y являются сбалансированными числами, их сбалансированная сумма равна Икс + yб при вычислении с использованием традиционной тернарной арифметики без знака. Аналогично, если Икс и y - обычные троичные числа без знака, их сумма равна Икс + y + б при вычислении с использованием сбалансированной троичной арифметики.

Преобразование в сбалансированную троичную систему из любой целочисленной базы

Мы можем преобразовать в сбалансированную троичную систему по следующей формуле:

куда,

апап−1...а1а0.c1c2c3... это исходное представление в исходной системе счисления.
б это исходная система счисления. б равно 10 при преобразовании из десятичного числа.
аk и ck цифры k местами слева и справа от точки счисления соответственно.

Например,

 −25.410 = - (1Т × 1011 + 1TT × 1010 + 11×101−1) = - (1T × 101 + 1TT + 11 ÷ 101) = −10T1.11TT          = T01T.TT11
 1010.12 = 1Т10 + 1Т1 + 1Т−1           = 10Т + 1Т + 0.1           = 101.1

Сложение, вычитание, умножение и деление

Таблицы простого сложения, вычитания, умножения и деления показаны ниже. Для вычитания и деления, которых нет коммутативный, первый операнд указывается слева от таблицы, а второй - вверху. Например, ответ на 1 - T = 1T находится в нижнем левом углу таблицы вычитания.

Добавление
+Т01
ТТ1Т0
0Т01
101
Вычитание
Т01
Т0ТТ1
010Т
11T10
Умножение
×Т01
Т10Т
0000
1Т01
Разделение
÷Т1
Т1Т
000
1Т1

Сложение и вычитание мульти-трита

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

           1TT1TT.1TT1 1TT1TT.1TT1 1TT1TT.1TT1 1TT1TT.1TT1 + 11T1.T - 11T1.T - 11T1.T → + TT1T.1 ______________ ______________ _______________ 1T0T10.0TT1 1T1001.TTT1 _________ T_________________________ T_______________________________ ________________ 1T1110.0TT1 1110TT.TTT1 1110TT.TTT1 + T + T 1 + T 1 ______________ ________________ ________________ 1T0110.0TT1 1100T.TTT1 1100T.TTT1

Многоточечное умножение

Многоточечное умножение аналогично двоичному и десятичному умножению.

       1TT1.TT × T11T.1 _____________ 1TT.1TT умножить 1 T11T.11 умножить T 1TT1T.T умножить 1 1TT1TT умножить 1 T11T11 умножить T _____________ 0T0000T.10T

Многоточечное деление

Сбалансированное троичное деление аналогично двоичному и десятичному делению.

Однако 0,510 = 0.1111...bal3 или 1.TTTT ...bal3. Если дивиденд превышает делитель плюс или минус половины, дробь частного должна быть 1 или T. Если дивиденд находится между плюсом и минусом половины делителя, дробь частного равна 0. Величина делимого должна быть сравнивать с половиной делителя перед установкой частного trit. Например,

                         1TT1.TT частное 0,5 × делитель T01.0 _____________ делитель T11T.1) T0000T.10T делимое T11T1 T000  10T0, установить T _______ 111T 1TT1T 111T> 10T___00 T1 T11T.1 T001  10T0, установить T ________ 1T.T1T 1T.T1T 1TT1T> 10T0, установить T ________ 0

Другой пример,

                           1TTT 0,5 × делитель 1T _______ Divisor 11) 1T01T 1T = 1T, но 1T.01> 1T, установить 1 11 _____ T10 T10 

Другой пример,

                           101.TTTTTTTTT… или 100.111111111… 0,5 × делитель 1T _________________ делитель 11) 111T 11> 1T, установить 1 11 _____ 1 T1 <1 <1T, установить 0 ___ 1T 1T = 1T, trits end, установить 1.TTTTTTTTT… или 0,111111111…

Квадратные корни и кубические корни

Процесс извлечения квадратный корень в сбалансированной троичной системе аналогичен десятичной или двоичной системе.

Как и при делении, мы должны сначала проверить значение половины делителя. Например,

                             1. 1 1 T 1 TT 0 0 ... _________________________ √ 1T 1 <1T <11, установить 1 - 1 _____ 1 × 10 = 10 1.0T 1.0T> 0.10, установить 1 1T0 −1.T0 ________ 11 × 10 = 110 1T0T 1T0T> 110, установить 1 10T0 −10T0 ________ 111 ​​× 10 = 1110 T1T0T T1T0T  111T0, установить 1 10TT110 −10T110 __________ 111T110 TT1 10__________ TT1TT0T 

Извлечение кубического корня в сбалансированной троичной системе аналогично извлечению в десятичной или двоичной системе:

Как и при делении, мы должны сначала проверить значение половины делителя, например:

                              1. 1 T 1 0 ... _____________________ ³√ 1T - 1 1 <1T <10T, установить 1 _______ 1.000 1 × 100 = 100 −0.100 заимствовать 100 ×, выполнить деление _______ 1TT 1.T00 1T00> 1TT, установить 1 1 × 1 × 1000 + 1 = 1001 −1,001 __________ T0T000 11 × 100 - 1100 заимствовать 100 ×, выполнить деление _________ 10T000 TT1T00 TT1T00  1T1T01TT, установить 1 11T × 11T × 1000 + 1 = 11111001 - 11111001 ______________ 1T10T000 11T1 × 100 - 11T100 заимствовать 100 ×, сделать деление __________ 10T0T01TT 1T0T0T00 T01010T11 <1T0T0T00 <10T0T01TT1, установить 0 11T1 × 111001 - 1000T1 - возврат × _____________ 1T10T000000 ... 

Следовательно 32 = 1.25992110 = 1.1T1 000 111001 T01 00T 1T1 T10 111bal3.

Приложения

В компьютерном дизайне

На заре компьютерных технологий несколько экспериментальных советских компьютеров были построены со сбалансированной троичной системой вместо двоичной, наиболее известной из которых был компьютер. Сетунь, построен Николай Брусенцов и Сергей Соболев. Обозначение имеет ряд вычислительных преимуществ перед традиционными двоичными и троичными. В частности, согласованность «плюс-минус» снижает скорость переноса при многозначном умножении, а эквивалентность округления-усечения снижает скорость переноса при округлении дробей. Однозначный Таблица умножения не имеет переносов в сбалансированной троичной системе, а таблица сложения имеет только два симметричных переноса вместо трех.

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

Другие приложения

Теорема о том, что каждое целое число имеет уникальное представление в сбалансированной троичной системе, использовалась Леонард Эйлер чтобы оправдать личность формальный степенной ряд[7]

У сбалансированной троичной системы есть и другие приложения помимо вычислений. Например, классический двухкамерный баланс, с одним грузом для каждой степени 3, может точно взвешивать относительно тяжелые предметы с небольшим количеством гирь, перемещая гири между двумя кастрюлями и столом. Например, с весами для каждой степени от 3 до 81 60-граммовый объект (6010 = 1T1T0bal3) будет идеально сбалансирован с грузом 81 грамм в другой кастрюле, грузом 27 грамм на отдельной посуде, 9 граммами на другой посуде, 3 граммами на отдельной посуде и 1 граммом отложенным.

Аналогичным образом рассмотрим валютную систему с монетами достоинством 1¤, 3¤, 9¤, 27¤, 81¤. Если у покупателя и продавца есть только по одной монете каждого вида, возможна любая транзакция до 121¤. Например, если цена 7¤ (710 = 1T1bal3), покупатель платит 1¤ + 9¤ и получает сдачу в размере 3¤.

Они также могут обеспечить более естественное представление Qutrit и системы, которые его используют.

Смотрите также

Рекомендации

  1. ^ а б Н.А. Криницкий; Г. А. Миронов; Г. Д. Фролов (1963). «Глава 10. Программно-управляемая машина Setun». В сб. М.Р. Шура-Бура (ред.). Программирование (на русском). Москва.
  2. ^ а б Хейс, Брайан (2001), «Третья база» (PDF), Американский ученый, 89 (6): 490–494, Дои:10.1511/2001.40.3268. Перепечатано в Хейс, Брайан (2008), Теория групп в спальне и другие математические отклонения, Фаррар, Страус и Жиру, стр. 179–200, ISBN  9781429938570
  3. ^ Стифель, Майкл (1544), Арифметика интегра (на латыни), стр. 38.
  4. ^ Бхаттачарджи, Абхиджит (24 июля 2006 г.). "Сбалансированная тройка". Архивировано из оригинал 19 сентября 2009 г.
  5. ^ Кнут, Дональд (1997). Искусство программирования. 2. Эддисон-Уэсли. С. 195–213. ISBN  0-201-89684-2.
  6. ^ Дуглас В. Джонс, Тройные системы счисления, 15 октября 2013 г.
  7. ^ Эндрюс, Джордж Э. (2007). De Partitio numerorum "Эйлера""". Бюллетень Американского математического общества. Новая серия. 44 (4): 561–573. Дои:10.1090 / S0273-0979-07-01180-9. МИСТЕР  2338365.
  1. ^ Символ дважды встречается в равенстве но эти примеры не представляют одно и то же. Правая сторона означает целое число нуль но пример внутри круглые скобки (принадлежащие ) следует рассматривать как не более чем символ (без значения). Причина этого в том, что, хотя в этой статье выбрано (именно этот выбор привел к двусмысленности), этот набор мог бы, например, быть выбран состоящим из символов Эту двусмысленность можно устранить, заменив ""с приговором" равно целому числу нуль "или с""где символ обозначает обычное целочисленное значение по основанию десять. То же самое и с символом в равенстве

внешняя ссылка