Paso 3: código para el algoritmo XOR en base [X]
Me parece que no puedo trabajar hacia fuera de las matemáticas en mi cabeza bastante rápido así que decidí pasar a la computadora. Soy un chico LINUX así que fui directamente a AWK tan rápido como pude.
Escribí un guión corto para al menos probar la teoría en un conjunto base [10]. Mi versión original en papel parece tener algunos problemas, pero al final conseguí una tabla de verdad que puedo vivir con.
1) he creado un archivo de línea de 10, un número en cada línea a partir de 0.
2) escribí una rutina para indizar estos números, aceptar una entrada, ejecutar el algoritmo y escupa hacia fuera el resultado.
----
#! / bin/bash
# baseX-xor.sh
echo -e $1 $2 | awk ' {} BEGIN
CNT = 1
mientras que (getline < "wheel.txt" > 0)
{
n [CNT] = $0; i [$0] = CNT; CNT ++
}
Mylen = CNT-1; mymax = CNT-2
Close("wheel.txt")
}
{
Pos1 = [$1] + 0; POS2 = [$2] + 0
if(Pos1==0) pos1 = 1
if(POS2==0) pos2 = 1
resultado = mymax-pos1 pos2
Si (resultado < = 0) resultado = resultado + mylen
Si (resultado < = 0) resultado = resultado + mylen
Si (resultado < = 0) resultado = resultado + mylen
imprimir n [resultado]
}'
----
Corrió un script de línea de comandos para hacer una matriz de tabla de verdad:
----
para X en 0 1 2 3 4 5 6 7 8 9
hacer
y en 0 1 2 3 4 5 6 7 8 9
hacer
O='./Basex-XOR.sh $X $Y'
echo -n "$O"
hecho
Eco
hecho
----
0 1 2 3 4 5 6 7 8 9
0 6 5 4 3 2 1 0 9 8 7
1 5 4 3 2 1 0 9 8 7 6
2 4 3 2 1 0 9 8 7 6 5
3 3 2 1 0 9 8 7 6 5 4
4 2 1 0 9 8 7 6 5 4 3
5 1 0 9 8 7 6 5 4 3 2
6 0 9 8 7 6 5 4 3 2 1
7 9 8 7 6 5 4 3 2 1 0
8 8 7 6 5 4 3 2 1 0 9
9 7 6 5 4 3 2 1 0 9 8