Это связано с моим стремлением изобрести эзотерический язык программирования .
Таблица двоичных чисел 0 .. 15 может использоваться для реализации универсальной двоичной функции с использованием операций индексирования. Учитывая два 1-битных входа X и Y, все 16 возможных функций могут быть закодированы в 4-битный код операции.
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
Таким образом, этот набор из 16 функций может быть применен к двоичным входам в качестве функции
U (f, x, y): (f >> ((x << 1) | y)) & 1 ,
или
U (f, x, y): (f / 2 ^ (x × 2 + y))% 2 ,
или с индексированием или матричным разделением.
Будет полезно знать наиболее компактный способ представления или генерации такой таблицы значений для любых возможных языков, которые будут построены на этом типе двоичной операции.
Цель:
Создайте этот точный текстовый вывод:
0101010101010101
0011001100110011
0000111100001111
0000000011111111
Это оно! Кратчайший код выигрывает.