Esto está relacionado tangencialmente con mi búsqueda para inventar un lenguaje de programación esotérico .
Se puede usar una tabla de los números binarios 0 .. 15 para implementar una función binaria universal mediante operaciones de indexación. Dadas dos entradas de 1 bit X e Y, las 16 funciones posibles se pueden codificar en un código de operación de 4 bits.
X Y F|0 1 2 3 4 5 6 7 8 9 A B C D E F
- - - - - - - - - - - - - - - - - -
0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
- - - - - - - - -
0 ~X ~Y ^ & Y X | 1
ZERO NOT-Y AND OR
NOT-X XOR ONE
Entonces este conjunto de 16 funciones se puede aplicar a entradas binarias como la función
U (f, x, y): (f >> ((x << 1) | y)) & 1 ,
o
U (f, x, y): (f / 2 ^ (x × 2 + y))% 2 ,
o con indexación o partición matricial.
Será útil conocer la forma más compacta de representar o generar dicha tabla de valores para cualquier lenguaje posible que se construya sobre este tipo de operación binaria.
La meta:
Genere esta salida de texto exacta:
0101010101010101
0011001100110011
0000111100001111
0000000011111111
¡Eso es! El código más corto gana.