Троичная система счисления

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Системы счисления в культуре
Индо-арабская
Арабская
Тамильская
Бирманская
Кхмерская
Лаосская
Монгольская
Тайская
Восточноазиатские
Китайская
Японская
Сучжоу
Корейская
Вьетнамская
Счётные палочки
Алфавитные
Абджадия
Армянская
Ариабхата
Кириллическая
Греческая
Эфиопская
Еврейская
Акшара-санкхья
Другие
Вавилонская
Египетская
Этрусская
Римская
Аттическая
Кипу
Майяская
Позиционные
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 20, 24, 26, 27, 32, 36, 60
Нега-позиционная
Симметричная
Смешанные системы
Фибоначчиева
Непозиционные
Единичная (унарная)

Трои́чная систе́ма счисле́ния — позиционная система счисления с целочисленным основанием, равным 3.

Существует в двух вариантах: несимметричная и симметричная.

Содержание

Троичные цифры[править | править вики-текст]

В несимметричной троичной системе счисления чаще применяются цифры {0,1,2}, а в троичной симметричной системе счисления знаки {−,0,+}, {−1,0,+1}, {1,0,1}, {1,0,1}, {i,0,1}, {N,O,P}, {N,Z,P} и цифры {2,0,1}, {7,0,1}[источник не указан 746 дней]. Троичные цифры можно обозначать любыми тремя знаками {A,B,C}, но при этом дополнительно нужно указать старшинство знаков, например, C>B, B>A.

Физические реализации[править | править вики-текст]

В цифровой электронике, независимо от варианта троичной системы счисления, одному троичному разряду в троичной системе счисления соответствует один троичный триггер как минимум на трёх инверторах с логикой на входе или два двоичных триггера как минимум на четырёх инверторах с логикой на входе.

Представление чисел в троичных системах счисления[править | править вики-текст]

Несимметричная троичная система счисления[править | править вики-текст]

Примером представления чисел в несимметричной троичной системе счисления может служить запись в этой системе целых положительных чисел:

Десятичное число 0 1 2 3 4 5 6 7 8 9 10
Троичное число 0 1 2 10 11 12 20 21 22 100 101

Если в десятичной системе счисления имеется 10 цифр и веса соседних разрядов различаются в 10 раз (разряд единиц, разряд десятков, разряд сотен), то в троичной системе используются только три цифры и веса соседних разрядов различаются в три раза (разряд единиц, разряд троек, разряд девяток, …). Цифра 1, написанная первой левее запятой, обозначает единицу; эта же цифра, написанная второй левее запятой, обозначает тройку и т. д.

Несимметричная троичная система счисления является частным случаем спаренных (комбинированных) показательных позиционных систем счисления, в которой ak — из троичного множества a={0,1,2}, b=3, веса разрядов равны 3k.

Показательные системы счисления[править | править вики-текст]

В показательных позиционных троичных системах счисления используются две системы:

  1. внутриразрядная система кодирования с основанием с, числа которой используются для записи цифр и
  2. приписная межразрядная система счисления с основанием b.

Целое число в показательной позиционной системе счисления представляется в виде суммы произведений значений в разрядах (цифр) — \ a_k на k-тые степени числа b:

x_{a,b} = \sum_{k=0}^{n-1} a_k b^k, где:
  • k — число от 0 до n-1, номер числового разрядa,
  • n — число разрядов,
  • с — основание системы кодирования, с равно размерности множества a={0,1,…,c-1} из которого берутся цифры ak,
  • ak — целые числа из множества a, называемые цифрами,
  • b — число, основание межразрядной показательной весовой функции,
  • bk — числа межразрядной функции, весовые коэффициенты разрядов.

Каждое произведение \ a_k b^k в такой записи называется (a, b)-ичным разрядом.

При c=b образуются (b, b)-ичные системы счисления с произведением — akbk и суммой — \sum_{k=0}^{n-1} a_k b^k, которые при b=3 превращаются в обычную (3,3)-ичную (троичную) систему счисления. При записи первый индекс часто опускается, иногда, когда есть упоминание в тексте, опускается и второй индекс.

Весовой коэффициент разряда — bk — приписной и, в общем случае, может быть необязательно показательной функцией от номера разряда — k, и необязательно степенью числа 3. Множество значений ak более ограниченно и более связано с аппаратной частью — числом устойчивых состояний триггеров или числом состояний группы триггеров в одном разряде регистра. В общем случае, ak могут быть тоже необязательно из троичного множества a={0,1,2}, но, чтобы спаренной системе быть троичной и называться троичной, как минимум, одна из двух систем должна быть троичной. ak-тые ближе к аппаратной части и по ak-тым из множества a={0,1,2} или из множества a={-1,0,+1}, определяется система кодирования: несимметричная троичная или симметричная троичная.

Показательные троичные системы счисления[править | править вики-текст]

Целое число \ x в показательной позиционной троичной системе записывают в виде последовательности его цифр (строки цифр), перечисляемых слева направо по убыванию старшинства разрядов:

x_{a,b} = (a_{n-1} a_{n-2}\dots a_0)_{a,b}.

В показательных системах счисления значениям разрядов приписываются весовые коэффициенты b^k, в записи они опускаются, но подразумевается, что k-тый разряд справа налево имеет весовой коэффициент равный b^k.

Из комбинаторики известно, что количество записываемых кодов равно числу размещений с повторениями:
\bar{A}(a,n)=\bar{A}_a^n=a^n=3^n, где:
a=3 — 3-х элементное множество a={0,1,2} из которого берутся цифры ak, n — число элементов (цифр) в числе x3,b.
Количество записываемых кодов не зависит от основания показательной функции — b, которое определяет диапазон представляемых числами x3,b величин.

Дробное число записывается и представляется в виде:

x_{a,b} = (a_{n-1} a_{n-2}\dots a_{1} a_{0},a_{-1} a_{-2}\dots a_{-(m-1)} a_{-m})_{a,b} =\sum_{k=-m}^{n-1} a_k b^k, где m — число разрядов дробной части числа справа от запятой,

при m=0 дробная часть отсутствует, число — целое,
при ak из троичного множества a={0,1,2} и b=1 образуется непозиционная троичная система счисления с одинаковыми весовыми коэффициентами всех разрядов равными 1k=1,
при ak из двоичного множества a={0,1} и b=3 в сумме будут только целые степени — 3k,
при ak из троичного множества a={0,1,2} и b=3 в сумме будут целые и удвоенные степени 3, система счисления становится обычной несимметричной троичной системой счисления, ak удовлетворяют неравенству 0\leqslant a_k\leqslant(b-1)<b, то есть 0\leqslant a_k\leqslant2<3,
при ak из десятичного множества a={0,1,2,3,4,5,6,7,8,9} и b=3 в сумме будут целые степени 3 умноженные на 1, 2, 3, 4, 5, 6, 7, 8 и 9.

В некоторых случаях этого может оказаться недостаточно, в таких случаях можно применить стро́енные (комтринированные), счетверённые и другие системы счисления.

Троичные системы счисления с дополнительным сомножителем[править | править вики-текст]

В показательных позиционных троичных системах счисления в вес разряда можно ввести дополнительный сомножитель. Например, сомножитель (b/с):

x_{a,b,c} = (a_{n-1} a_{n-2}\dots a_{1}a_{0},a_{-1}a_{-2}\dots a_{-(m-1)}a_{-m})_{a,b,c} = \sum_{k=-m}^{n-1} a_k b^k (b/c)

В общем случае c≠3.
При ak из a={0,1,2}, b=3 и c=3 образуется обычная несимметричная троичная система счисления.
При a=2, b=3 и c=2 образуется (2,3,2)-ичная система счисления с дополнительным нецелочисленным весовым коэффициентом в произведении равным (3/c)=(3/2)=1,5.
При других значениях a, b и c образуются другие показательные позиционные системы счисления с дополнительным сомножителем (b/c), число которых бесконечно.
Возможны бесконечные множества и других составных систем счисления.

Кодирование троичных цифр[править | править вики-текст]

Одна троичная цифра может кодироваться разными способами.

Трёхуровневые системы кодирования троичных цифр[править | править вики-текст]

1. Трёхуровневое кодирование троичных цифр (3-Level Coded Ternary, 3LCT, «однопроводное»):
Число трёхуровневых систем кодирования троичных цифр равно числу перестановок:

P_3=A_3^3=\frac {3!}{(3-3)!}=\frac {3!}{0!}=3!= 6, из них одна

1.1. Симметричная {-1,0,+1}
+U — (+1) ;
0 — (0) ;
-U — (-1) ,
1.2. Сдвинутая на +1 {0,1,2}
1.3. Сдвинутая на +2 {1,2,3}

Двухуровневые системы кодирования троичных цифр[править | править вики-текст]

2. Двухбитные двоичнокодированые троичные цифры (2-Bit BinaryCodedTernary, 2B BCT representation, «двухпроводное») с использованием 3-х кодов из 4-х возможных[1]:
Число возможных 2B BCT систем кодирования троичных цифр равно числу сочетаний без повторения:

{n\choose k} = C_n^k = \frac{n!}{k!\left(n-k\right)!} = {4\choose 3} = \frac{4!}{3!\left(4-3\right)!} = 4, умноженному на число перестановок в каждом наборе из 3-х цифр:
P_3=A_3^3=\frac {3!}{(3-3)!}=\frac {3!}{0!}=3!= 6, то есть 4*6 = 24.

Вот некоторые из них:
2.1.[2]
(1,0) — 2 ;
(0,1) — 1 ;
(0,0) — 0.
2.2.
(1,1) — 2;
(0,1) — 1;
(0,0) — 0.
3. Двухбитные двоичнокодированые троичные цифры (2-Bit BinaryCodedTernary, 2B BCT representation, «двухпроводное») с использованием всех 4-х кодов из 4-х возможных (два из 4-х кодов кодируют одну и туже троичную цифру из 3-х).
3.1.
Вот одна из них[3]:
(0,0) — «0»
(1,1) — «0»
(0,1) — «-1»
(1,0) — «+1»
4. Трёхбитные двоичнокодированые троичные цифры (3-Bit BinaryCodedTernary, 3B BCT representation, «трёхпроводное») с использованием 3-х кодов из 8-ми возможных:
Число возможных 3B BCT систем кодирования троичных цифр равно числу сочетаний без повторения:

{n\choose k} = C_n^k = \frac{n!}{k!\left(n-k\right)!} = {8\choose 3} = \frac{8!}{3!\left(8-3\right)!} = 54, умноженному на число перестановок в каждом наборе из 3-х цифр:
P_3=A_3^3=\frac {3!}{(3-3)!}=\frac {3!}{0!}=3!= 6, то есть 54*6 = 324.

Вот некоторые из них:
3.1.
(1,0,0) — 2;
(0,1,0) — 1;
(0,0,1) — 0.
3.2.
(0,1,1) — 2;
(1,0,1) — 1;
(1,1,0) — 0.
3.3.
(1,1,1) — 2;
(0,1,1) — 1;
(0,0,1) — 0.
3.4.
(0,0,0) — 2;
(1,0,0) — 1;
(1,1,0) — 0.
и др.

Сравнение с двоичной системой счисления[править | править вики-текст]

При поразрядном сравнении троичная система счисления оказывается более ёмкой, чем двоичная система счисления.
При девяти разрядах двоичный код имеет ёмкость 2^9=512 чисел, а троичный код имеет ёмкость 3^9=19 683 числа, то есть в 3^9/2^9=38,4 раза больше.
При двадцати семи разрядах двоичный код имеет ёмкость 2^{27}=134 217 728 чисел, а троичный код имеет ёмкость 3^{27}=7 625 597 484 987 чисел, то есть в 3^{27}/2^{27}=56 815,13 раз больше.
При восьмидесяти одном разряде двоичный код имеет ёмкость 2^{81}=2 417 851 693 229 258 349 412 352 числа, а троичный код имеет ёмкость 3^{81}=4,434e+38 чисел, то есть в 3^{81}/2^{81}=183 396 897 083 556,95 раз больше.

Свойства[править | править вики-текст]

Троичная позиционная показательная несимметричная система счисления по затратам числа знаков (в трёхразрядном десятичном числе 3*10=30 знаков) наиболее экономична из позиционных показательных несимметричных систем счисления.[4][5][6][7][8] А. Кушнеров[5] приписывает эту теорему Джону фон Нейману.

Перевод целых чисел из десятичной системы счисления в троичную[править | править вики-текст]

Для перевода целое десятичное число делят нацело с остатком (целочисленное деление) на 3 до тех пор, пока частное больше нуля. Остатки, записанные слева направо от последнего к первому являются целым несимметричным троичным эквивалентом целого десятичного числа.[9]
Пример: десятичное целое число 4810,10 переведём в несимметричное троичное целое число:
число = 4810,10 делим на 3, частное = 16, остаток a0 = 0
частное = 1610,10 делим на 3, частное = 5, остаток a1 = 1
частное = 510,10 делим на 3, частное = 1, остаток a2 = 2
частное = 110,10 делим на 3, частное = 0, остаток a3 = 1
Частное не больше нуля, деление закончено.
Теперь, записав все остатки от последнего к первому слева направо, получим результат 4810,10 = (a3a2a1a0)3,3 = 12103,3.

Таблицы сложения в троичных системах счисления[править | править вики-текст]

В троичной несимметричной системе счисления[править | править вики-текст]

С результатом в десятичной системе счисления:

2 2 3 4
1 1 2 3
0 0 1 2
+ 0 1 2

С результатом в троичной несимметричной системе счисления:

2 02 10 11
1 01 02 10
0 00 01 02
+ 0 1 2

В троичной симметричной системе счисления[править | править вики-текст]

С результатом в десятичной системе счисления:

+1 0 +1 +2
0 −1 0 +1
−1 −2 −1 0
+ −1 0 +1

С результатом в троичной симметричной системе счисления:

+1 00 01 1i
0 0i 00 01
−1 i1 0i 00
+ −1 0 +1

Симметричная троичная система счисления[править | править вики-текст]

Позиционная целочисленная симметричная троичная система счисления была предложена итальянским математиком Фибоначчи (Леонардо Пизанский) (1170—1250) для решения «задачи о гирях».[10] Задачу о наилучшей системе гирь рассматривал Лука Пачоли (XV в.). Частный случай этой задачи был опубликован в книге французского математика Клода Баше де Мезириака «Сборник занимательных задач» в XVII веке в 1612 г. Русский перевод книги К. Г. Баше «Игры и задачи, основанные на математике» вышел в Петербурге в 1877 г. Позже этой задачей занимался петербургский академик Леонард Эйлер, интересовался Д. И. Менделеев.[11][12][13][14][15]

Симметричность при взвешивании на рычажных весах использовали с древнейших времён, добавляя гирю на чашу с товаром. Элементы троичной системы счисления были в системе счисления древних шумеров,[16] в системах мер, весов и денег, в которых были единицы равные 3. Но только в симметричной троичной системе счисления Фибоначчи объединены оба этих свойства.

Симметричная система позволяет изображать отрицательные числа, не используя отдельный знак минуса. Число 2 изображается цифрой 1 в разряде троек и цифрой \bar 1 (минус единица) в разряде единиц. Число −2 изображается цифрой \bar 1 (минус единица) в разряде троек и цифрой 1 в разряде единиц.
Возможны шесть соответствий цифр (знаков) троичной симметричной системы счисления и цифр (знаков) троичной несимметричной системы счисления:

1. 2. 3. 4. 5. 6.
1 2 1 0 0 2 1
0 1 0 2 1 0 2
1 0 2 1 2 1 0

В соответствии 2. сохраняются числовые значения 0 и 1.

Десятичная система −9 −8 −7 −6 −5 −4 −3 −2 −1 0 1 2 3 4 5 6 7 8 9
Троичная несимметричная −100 −22 −21 −20 −12 −11 −10 −2 −1 0 1 2 10 11 12 20 21 22 100
Троичная симметричная 100 101 111 110 111 11 10 11 1 0 1 11 10 11 111 110 111 101 100

В троичной симметричной системе счисления знак 1 можно заменить знаком (не числом) i или 2 и, во втором случае, использовать для троичной симметричной системы счисления {-1,0,+1} знаки троичной несимметричной системы {2,0,1}.

Свойства[править | править вики-текст]

Благодаря тому что основание 3 нечётно, в троичной системе возможно симметричное относительно нуля расположение цифр: −1, 0, 1, с которым связано шесть ценных свойств:

  • Естественность представления отрицательных чисел;
  • Отсутствие проблемы округления: обнуление ненужных младших разрядов округляет — приближает число к ближайшему «грубому».
  • Таблица умножения в этой системе, как отметил О. Л. Коши, примерно в четыре раза короче.[11](стр.34).
  • Для изменения знака представляемого числа нужно изменить ненулевые цифры на симметричные.
  • При суммировании большого количества чисел значение для переноса в следующий разряд растёт с увеличением количества слагаемых не линейно, а пропорционально квадратному корню числа слагаемых.
  • По затратам количества знаков на представление чисел она равна троичной несимметричной системе.

Представление отрицательных чисел[править | править вики-текст]

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

10\bar1 = 9-1 = 8
\bar101 =-9+1 =-8

Округление[править | править вики-текст]

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

Перевод чисел из десятичной системы в троичную[править | править вики-текст]

Перевод чисел из десятичной системы в троичную и соответствующий ему вопрос о гирях подробно изложены в книгах[17][18]. Там же рассказано о применении троичной системы гирь в русской практике.

Перевод в другие системы счисления[править | править вики-текст]

Всякое число, записанное в троичной системе счисления с цифрами 0, 1, −1, можно представить в виде суммы целых степеней числа 3, причём если в данном разряде троичного изображения числа стоит цифра 1, то соответствующая этому разряду степень числа 3 входит в сумму со знаком «+», если же цифра −1, то со знаком «-», а если цифра 0, то вовсе не входит. Это можно представить формулой

 \cdots + K_3\cdot3^3 + K_2\cdot3^2+ K_1\cdot3^1+ K_0\cdot3^0+ K_{-1}\cdot3^{-1}+ K_{-2}\cdot3^{-2}+ K_{-3}\cdot3^{-3} + \cdots, где
 \cdots + K_3\cdot3^3 + K_2\cdot3^2+ K_1\cdot3^1+ K_0\cdot3^0 — целая часть числа,
 \cdots + K_{-1}\cdot3^{-1}+ K_{-2}\cdot3^{-2}+ K_{-3}\cdot3^{-3} + \cdots — дробная часть числа,

причём коэффициенты K могут принимать значения { 1, 0, −1 }.

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

Практические применения[править | править вики-текст]

  • Работая в палате мер и весов, Д. И. Менделеев, с учётом симметричной троичной системы счисления, разработал цифровой ряд значений весов разновеса для взвешивания на лабораторных весах, который используется по сей день.
  • Симметричная троичная система использовалась в советской ЭВМ Сетунь.

Девятеричная форма представления команд[править | править вики-текст]

Представление команд троичным кодом при программировании и при вводе в машину неудобно и неэкономно, поэтому вне машины применяется девятеричная форма представления команд. Девятеричные цифры \bar4, \bar3, \bar2, \bar1, 0, 1, 2, 3, 4 сопоставляются парам троичных цифр:

\bar1\bar1 = \bar4;\quad\bar10 = \bar3;\quad\bar11 = \bar2;\quad0\bar1 = \bar1;\quad00 = 0;
11 = 4;\quad10 = 3;\quad1\bar1 = 2;\quad01 = 1.

При выводе из машины отрицательные девятеричные цифры обозначают буквами:

Девятеричная цифра \bar1 \bar2 \bar3 \bar4
Буква латинского алфавита Z Y X W
Буква русского алфавита Ц У Х Ж

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. http://314159.ru/kushnerov/kushnerov1.pdf Троичная цифровая техника. Ретроспектива и современность
  2. BCT: Binary Coded Ternary
  3. Тринари. Форум. Аппаратная часть. Сумматор. Блок 003
  4. С. В. Фомин Системы счисления. — М.: Наука, 1987. — 48 с. — (Популярные лекции по математике). (альтернативная ссылка)
  5. 1 2 А. Кушнеров Троичная цифровая техника. Ретроспектива и современность.
  6. Экономичность систем счисления (недоступная ссылка с 13-05-2013 (542 дня))
  7. Удивительное свойство троичной системы счисления (недоступная ссылка с 13-05-2013 (542 дня) — история)
  8. О. А. Акулов, Н. В. Медведев. Информатика и вычислительная техника. 4-е изд. — М.: Омега-Л, 2007. (Раздел I, Гл.3.3)
  9. http://algolist.manual.ru/maths/teornum/count_sys.php Перевод из системы с большим основанием — в систему с меньшим
  10. «Троичный принцип» Николая Брусенцова.
  11. 1 2 С. Б. Гашков § 11. Д. И. Менделеев и троичная система // Системы счисления и их применение. — М.: МЦНМО, 2004. — (Библиотека «Математическое просвещение»). В Google Chrome после нажатия на PDF(333Kb) нужно стронуть одну из боковых сторон рамки браузера.
  12. И. Я. Депман. История арифметики. Пособие для учителей. Издание второе, исправленное. Издательство «Просвещение», Москва, 1965. Глава I. Натуральное число. 7. Задача Баше — Менделеева, стр.36.
  13. Е. С. Давыдов, Наименьшие группы чисел для образования натуральных рядов, Спб., 1903, 36 стр.
  14. В. Ф. Гартц, Лучшая система для весовых гирь, Спб., 1910, 36 стр.
  15. Ф. А. Слудский, О свойствах степеней двух и трёх. «Математический сборник», ч. III, стр. 214.
  16. Юрий Ревич «Наследники Бэббиджа» // «Домашний компьютер», № 12, 1 декабря 2002 года.
  17. И. Я. Депман. «Меры и метрическая система», Учпедгиз, 1955.
  18. И. Я. Депман. «Возникновение системы мер и способов измерения величин», вып. 1, Учпедгиз, 1956.

Литература[править | править вики-текст]