Существует ли обратимая побитовая операция, подобная XOR, за исключением того факта, что порядок операндов имеет значение? - PullRequest
0 голосов
/ 16 апреля 2020

Я представляю возникновение последовательности событий в виде очень длинной кумулятивной битовой строки фиксированного размера. Например, событие A идентифицируется как «010111000110100», событие B идентифицируется как «101001110001100». [Сокращенные строки для простоты.]

Последовательность A -> B приводит к списку строк ['010111000110100', '101001110001100'].

В моем контексте такая последовательность событий может также рассматривается как отдельное событие большего размера, поэтому я представляю его как результат операции XOR: «111110110111000».

XOR здесь интересен, поскольку он обратим, поэтому я могу отменить последнее событие , Однако A XOR B такой же, как B XOR A. Ситуация еще хуже для длинных последовательностей, где все перестановки событий приводят к одному и тому же идентификатору.

Есть ли способ продлить операцию XOR так что он дает разные результаты для разных упорядочений одних и тех же операндов (сохраняя свойство обратимости)?

Другое, менее изящное решение, о котором я думал, - объединить обе строки и вычислить некоторый обратимый га sh функция. Но это не кажется изящным, ни что-то со стандартным подходом.

...