Operador - Diferença simétrica generalizada
Se você pegar o xor binário e generalizá-lo para outras radições, poderá fazê-lo pelo valor absoluto da diferença de cada elemento em um vetor radix. No entanto, isso não tem as mesmas propriedades que o diferencial binário simétrico. A razão é que, jogando fora o "sinal" da diferença, somos incapazes de reconstruir uma ópera e, dado o resultado e o outro, como podemos no xor binário. Então perdemos a bela propriedade
ABA = B
No entanto, mantemos outras propriedades agradáveis, como
A0 = A
AA = 0
Existe uma maneira de manter essa propriedade. No entanto, tanto quanto posso dizer, envolve a emissão de 3 vetores para qualquer resultado. O primeiro vetor é a diferença simétrica usual, os outros dois vetores são vetores binários de comprimento igual ao primeiro que registram o sinal do resultado, um desses vetores para cada ordem dos operandos, sendo o complemento binário do outro. Dessa maneira, um operando original pode ser recuperado, dado o resultado e o outro opernad, E que outros operandos "assinam" o vetor.
Por exemplo :
Digamos que temos 2 vetores de base 10 correspondentes aos números 1137 e 9284, qual é o xor desses dois números na base 10?
7 3 1 1 4 8 2 9
4 8 2 9 7 3 1 1
Signed
Result 3 -5 -1 -8 -3 5 1 8
Sign
Vector 0 1 1 1 1 0 0 0
Symmetric
Difference 3 5 1 8
Recupere 1137 dados 8153 e 9284
3 5 1 8
+ - - -
4 8 2 9
7 3 1 1
Minha pergunta é: existe uma construção melhor da diferença simétrica generalizada em qualquer raiz> 2, de modo que não precisamos 'lembrar o sinal'?
fonte