11

Gdybym posiadał sumę produktów takich jak z*a + z*b + z*c + ... + z*y, możliwe byłoby przesunięcie współczynnika z, który jest taki sam, przed nawiasami: z(a + b + c + ... y).Przenoszenie przed nawiasami za pomocą XOR

Chciałbym wiedzieć, jak to jest możliwe (jeśli jest), aby wykonać tę samą sztuczkę, jeśli zamiast mnożenia użyto bitwise XOR. z^a + z^b + ... z^y -> z^(a + b + ... + y)

Czy przed dodaniem należy przeprowadzić wstępną obróbkę, np. Negację logiczną lub coś innego? z może ulec zmianie, więc wstępne przetwarzanie, jeśli jest potrzebne, nie powinno zależeć od konkretnej wartości z.

+3

AFAIK XOR nie jest dystrybucyjny nad dodaniem modulo 2^32, więc nie można tego zrobić. – harold

+0

Preprocessing a y przez XORing ich z z nie będzie wolniejszy niż negowanie a przez y. Jest to trywialna operacja dla procesora. –

+1

Brzmi jak ładne ćwiczenie matematyczne: "Wykazać, że nie ma funkcji' f_z (x) 'tak, że' Σ (z^x_i) = z^Σ f_z (x_i) 'dla wszystkich x_i." – MSalters

Odpowiedz

6

Od Wikipedia:

Distributivity: bez funkcji binarnej, nawet ze sobą

Tak, nie, niestety, nie można czegoś takiego zrobić z XOR.

Powiązane problemy