Sistema numérico binário inclinado - Skew binary number system
O sistema de inclinação número binário é um sistema de numeração posicionai não-padrão em que o N -ésimo dígito contribui com um valor de vezes o dígito (dígitos são indexados a partir de 0) em vez de vezes como o fazem em binário . Cada dígito tem um valor de 0, 1 ou 2. Um número pode ter muitas representações binárias distorcidas. Por exemplo, um número decimal 15 pode ser escrito como 1000, 201 e 122. Cada número pode ser escrito exclusivamente na forma canônica binária inclinada onde há apenas no máximo uma instância do dígito 2, que deve ser o dígito diferente de zero menos significativo . Nesse caso, 15 é escrito canonicamente como 1000.
Exemplos
As representações binárias de inclinação canônica dos números de 0 a 15 são mostradas na tabela a seguir:
Decimal | Binário | Skew Binary | Ternário |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 10 | 10 |
4 | 100 | 11 | 11 |
5 | 101 | 12 | 12 |
6 | 110 | 20 | 20 |
7 | 111 | 100 | 21 |
8 | 1000 | 101 | 22 |
9 | 1001 | 102 | 100 |
10 | 1010 | 110 | 101 |
11 | 1011 | 111 | 102 |
12 | 1100 | 112 | 110 |
13 | 1101 | 120 | 111 |
14 | 1110 | 200 | 112 |
15 | 1111 | 1000 | 120 |
Operações aritméticas
A vantagem do binário skew é que cada operação de incremento pode ser feita com no máximo uma operação de transporte . Isso explora o fato de que . O incremento de um número binário inclinado é feito definindo os únicos dois como zero e incrementando o próximo dígito de zero a um ou um a dois. Quando os números são representados usando uma forma de codificação de comprimento de execução como listas vinculadas de dígitos diferentes de zero, o incremento e a diminuição podem ser executados em tempo constante.
Outras operações aritméticas podem ser realizadas alternando entre a representação binária distorcida e a representação binária.
Da representação binária distorcida à representação binária
Dado um número binário inclinado, seu valor pode ser calculado por um loop, computando os valores sucessivos de e adicionando-o uma ou duas vezes para cada um, de modo que o ésimo dígito seja 1 ou 2, respectivamente. Um método mais eficiente é agora fornecido, com apenas representação de bits e uma subtração.
O número binário inclinado da forma sem 2 e com 1s é igual ao número binário menos . Let representa o dígito repetido vezes. O número binário inclinado da forma com 1s é igual ao número binário menos .
Da representação binária à representação binária distorcida
De maneira semelhante à seção anterior, o número binário da forma com 1s é igual ao número binário inclinado mais . Observe que, como a adição não está definida, a adição corresponde a incrementar o número de vezes. No entanto, é limitado pelo logaritmo de e a incrementação leva um tempo constante. Portanto, a transformação de um número binário em um número binário enviesado ocorre no tempo linear no comprimento do número.
Formulários
Os números binários skew foram desenvolvidos por Eugene Myers em 1983 para uma estrutura de dados puramente funcional que permite as operações do tipo de dados abstratos da pilha e também permite a indexação eficiente na sequência de elementos da pilha. Mais tarde, eles foram aplicados a pilhas binomiais de inclinação , uma variante de pilhas binomiais que suportam operações de inserção de pior caso em tempo constante.