Decir que tengo n números positivos A1,A2...An
y Ak
es el mínimo entre ellos. Y d
es un número tal que (A1-d) ⊕ (A2-d) ⊕ .......(An-1-d) ⊕ (An-d) = 0
donde0<=d <= Ak
.
Quiero saber cuántas d están ahí . Sé que puedo recorrer todo el posible valor de d y tomar XOR de n número cada momento y encontrar la salida, pero la complejidad en este caso es O(Ak∗n), que es O(n2) en el peor de los casos.
Es su propiedad de XOR que nos puede ayudar a encontrar el número de d en menos complejidad que esto ?
Editar :
Eq: Si n=4
y los números son = 4 6 8 10
entonces d
puede {0,3}
como
4 ⊕ 6 ⊕ 8 ⊕ 10 =0
y
1 ⊕ 3 ⊕ 5 ⊕ 7 =0