Ternário balanceado

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Números em B.t. de −13 até 13

Ternário balanceado é um sistema numeral posicional não-padrão (uma forma balanceada), útil para a lógica de comparação. É um sistema ternário, mas ao contrário do sistema ternário padrão (desequilibrado), os dígitos têm valores -1, 0 e 1. Essa combinação é especialmente valiosa para as relações ordinais entre dois valores, onde as três possíveis relações são menos-que, igual-a e maior-que. O ternário balanceado pode representar todos os inteiros, sem recorrer a um sinal de menos.

O ternário balanceado é contado da seguinte forma. (Neste exemplo, o símbolo 1 denota o dígito -1, mas em uma alternativa para facilitar a análise "-" pode ser utilizado para designar -1 e "+" para denotar um).

Ternário balanceado
Decimal −6 −5 −4 −3 −2 −1 0 1 2 3 4 5 6
Ternário balanceado 110 111 11 10 11 1 0 1 11 10 11 111 110

Ternários não-balanceados podem ser convertidos para a notação ternária balanceada , adicionando-se 1111 .. com vai-um, subtraindo 1111 ... sem pedir emprestado (a string de 1s deve ter o mesmo tamanho, por isso, se o resultado da adição tiver mais dígitos, não subtrai-se nada desses dígitos extra). Por exemplo, 0213 + 1113 = 2023, 2023 − 1113 = 1113(bal) = 710.

O Ternário balanceado é facilmente representado como sinais eletrônicos, uma vez que o potencial pode ser negativo, neutro ou positivo. Utilizando um terceiro estado engloba mais dados por algarismos; linearmente cerca de 1,5849 (\log_2{3}) bits por trit.

Aplicações[editar | editar código-fonte]

O Ternário balanceado tem outras aplicações além de computação. Por exemplo, uma clássica Balança de 2 pratos, com um peso para cada potência de 3, pode pesar objetos relativamente pesados com precisão com um número pequeno de pesos, movendo o peso entre os dois pratos e a mesa. Por exemplo, com os pesos para cada potência de 3 até 81, um objeto de 60 gramas (6010 = 11110) será perfeitamente equilibrado com um grama de peso 81 no outro prato, o peso de 27 gramas no seu próprio prato, o peso de 9, no outro prato, o peso 3 gramas no próprio prato, e o peso de 1 grama deixado de lado.

Da mesma forma, um sistema de moeda com valores ternários pouparia visitas ao banco - os clientes estariam propensos a obter o valor exato, ou a necessitarem de um pequeno número de moedas de troco, e os vendedores apenas ocasionalmente, precisariam depositar uma moeda grande ou duas. O sistema funciona através da representação de valores positivos como as moedas que o cliente dá ao comerciante, e valores negativos como as moedas que o comerciante oferece ao cliente. Por exemplo, se um comerciante vende um item por cinco zorkmids, o cliente iria dar o comerciante uma moeda de nove zorkmid, e o comerciante daria ao cliente uma moeda de três zorkmid e uma moeda de um zorkmid.

Computação[editar | editar código-fonte]

Houve alguns computadores russos experimentais, Setun, nos primórdios da computação, que foram construídos com ternário balanceado em vez de binário. A notação tem uma série de vantagens computacionais sobre binários regulares, e sobre ternários tradicionais. Em particular, a tabela de multiplicação de um-dígito não tem vai-um em ternário balanceado, e a tabela de adições tem apenas dois vai-uns simétricos em vez de três.

Esta notação tem a propriedade de que o dígito não-zero líder é o sinal do número total. Para comparar dois números, basta comparar os dígitos a partir do mais significativo para o menos significativo. A direção da magnitude de comparar os primeiros dígitos que são diferentes é a direção de comparar a magnitude dos números completos.

Um número é divisível por três, se o último dígito é zero. O teste rápido para par é o análogo da prova dos nove no sistema de base 10: some todos os dígitos e repita até que você tenha um número de um dígito; o número é par, se a soma final é zero.

Ternário balanceado fracionário[editar | editar código-fonte]

O ternário balanceado pode ser estendido para números fracionários da mesma forma como números decimais são escritos após o separador decimal. Por exemplo, ⅓ é 0,1 e ⅔ é 1,1.

Donald Knuth salientou que a truncagem e arredondamento são a mesma operação em ternário balanceado - elas produzem exatamente o mesmo resultado. Além disso, não existe qualquer ambiguidade no arredondamento (uma propriedade compartilhada com outras bases ímpares), já que o número ½ é representado pela fração de repetição 0,1 (e 1,1).

Ao contrário da notação de base padrão, onde os valores inteiros e frações periódicas têm múltiplas representações (por exemplo em decimal, ¼ = 0.2510 = 0.24910), em ternário balanceado tais números tem somente uma representação (¼ = 0.113(bal)). Por outro lado, metade do número de uma fração de terminação (ou seja, cujo denominador é 2 vezes uma potência de 3) têm múltiplas representações por exemplo, ⅙ = 0.013(bal) = 0.113(bal).

As operações básicas de adição, subtração, multiplicação e divisão são feitas como em ternário normal, exceto que há algumas considerações especiais sobre comparação de tamanho. Multiplique 2 por 10 em ternário e depois divida o resultado por 2 para ver o problema. Os resultados intermediários são os mesmos (em ordem inversa), nos dois casos, e assim você pode usar um como uma verificação sobre o outro.

Deslocamentos de dígitos multiplicam ou dividem por três em vez de por dois como em binário.

Multiplicação por dois pode ser feita adicionando um número a si mesmo. Divisão por dois pode ser feita com a mesma operação contagem como um algoritmo de LeRoy Eide de complemento (um algoritmo que retorna como resultado o primeiro dígito menos significativo, em vez do primeiro dígito mais significativo como na divisão padrão).

Como em binário, existem algoritmos equivalentes em ternário equilibrado para as operações de multiplicação por deslocamentos ou por somas e algoritmos para o cálculo da exponenciação por deslocamentos ou por multiplicações.

Uma convenção comum para o ternário equilibrado é representar os dígitos por "+" para +1, "−" para −1, e "0" para zero. Usando esta convenção, as tabelas de multiplicação e adição são:

Multiplicação
× 0 +
+ 0
0 0 0 0
+ 0 +
Adição
+ 0 +
−+ 0
0 0 +
+ 0 + +−

Ligações externas[editar | editar código-fonte]