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
.
AFAIK XOR nie jest dystrybucyjny nad dodaniem modulo 2^32, więc nie można tego zrobić. – harold
Preprocessing a y przez XORing ich z z nie będzie wolniejszy niż negowanie a przez y. Jest to trywialna operacja dla procesora. –
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