Si tuviera la suma de productos como z*a + z*b + z*c + ... + z*y
, sería posible mover el factor z
, que es lo mismo, antes de los corchetes: z(a + b + c + ... y)
.Mudanza antes de corchetes con XOR
Me gustaría saber cómo es posible (si es que) hacer el mismo truco si se usa bitwise XOR en lugar de la multiplicación. z^a + z^b + ... z^y -> z^(a + b + ... + y)
¿Tal vez a, b, c ...
se debe preprocesar, como lógicamente negado o alguna otra cosa, antes de agregar? z
podría cambiar, por lo que el preprocesamiento, si es necesario, no debe depender del valor particular de z
.
AFAIK XOR no es distributivo sobre el módulo de adición 2^32, por lo que no puede hacer eso. – harold
El preprocesamiento a través de y por XORing ellos con z no va a ser más lento que simplemente negando a través de y. Es una operación trivial para una CPU. –
Suena como un buen ejercicio de prueba de matemática: "Demostrar que no hay función' f_z (x) 'tal que' Σ (z^x_i) = z^Σ f_z (x_i) 'para todo x_i." – MSalters