Cómo calcular todos los valores XOR posibles de todos los subconjuntos de una matriz

Nota del moderador : este es un problema de concurso en curso. Según el protocolo habitual, las respuestas se han ocultado y la pregunta está bloqueada hasta la fecha de finalización del concurso. (21.03.2014)

Dada una lista que contiene N enteros, Cómo encontrar el XOR_SUM de todos los subconjuntos no vacíos de la lista.
Por ejemplo, XOR_SUM de la lista A que tiene tres elementos {X1, X2, X3} se puede dar de la siguiente manera. Todos los subconjuntos no vacíos serán {X1, X2, X3, (X1, X2), (X2, X3), (X1, X3), (X1, X2, X3)} XOR_SUM (A) = X1 + X2 + X3 + X1 ^ X2 + X2 ^ X3 + X1 ^ X3 + ((X1 ^ X2) ^ X3)
EJEMPLO: Sea N = 3 y la lista sea [1,2,3], entonces la respuesta será 12, ya que serán 7 subconjuntos no vacíos cuyo XOR se proporciona a continuación1 = 1 2 = 2 3 = 3 1 ^ 2 = 3 2 ^ 3 = 1 3 ^ 1 = 2 1 ^ 2 ^ 3 = 0
Entonces la suma de todos esos XOR será 12.

Si tiene un límite en el elemento máximo ” x ‘de la matriz, cree un cubo hash de tamaño = potencia más cercana de 2 mayor que’ x ‘. Por ejemplo, si x = 100, entonces su tamaño de hash será 128. En un bucle, supongamos que está procesando el i-ésimo elemento, luego se ejecuta con todos los subconjuntos encontrados previamente hasta la i-ésima iteración. Su hash tendrá un recuento de # veces que la clave fue hash debido a xoring.
Entonces, finalmente, su cubo de hash tendrá las claves y los tiempos correspondientes a los hash. Ahora puede grabar todas las claves que fueron hash, tenga en cuenta el recuento también para cada clave. La complejidad del tiempo es de 2 poderes, ya que todos los subconjuntos necesitan atravesar y trabajar. Se pueden hacer pequeñas mejoras. La complejidad del espacio es hash de tamaño ‘x’

Usando Gaussian Elimination primero obtenga su conjunto de números en este formato.

aquí los números se representan en formato binario.

1000000
0100000
0001000
0000100
0000001
0000000
0000000

ahora solo tiene que averiguar en qué posiciones se establecen. Entonces, todos los valores xor posibles son (en expresiones regulares)

[01] [01] 0 [01] [01] 0 [01]

More Interesting

Cómo prepararse para las entrevistas con desarrolladores Java (Spring, Hibernate)

¿Las preguntas de entrevistas de software en las principales compañías tecnológicas están específicamente diseñadas para sesgar a los programadores más jóvenes (que aún recuerdan los conceptos teóricos en detalle)?

¿Qué preguntas de entrevista debo esperar para un puesto en Java y OpenStack?

Como estudiante en un campamento de programación de 12 semanas en SF, ¿cuál es la mejor manera de prepararse para futuras entrevistas técnicas?

¿Cuáles son los hitos que puedo mantener para convertirme en un programador exitoso, para seguir comprobando si estoy en el camino correcto o si estoy haciendo las cosas lo suficientemente rápido?

¿Es inusual que una publicación de trabajo le solicite que realice y les envíe el código fuente de una aplicación web básica?

¿Cuál es el acertijo lógico que Dev Bootcamp pregunta durante su entrevista? ¿Cómo es y cómo puedo prepararme mejor?

¿Cuáles son las preguntas frecuentes de la entrevista para los ingenieros de Java?

Soy un ingeniero de software experimentado. ¿Cómo me preparo para la entrevista de Google?

Cómo lidiar con estar nervioso en la entrevista de programación

¿Cuáles son las preguntas comunes que se hacen en las entrevistas sobre colecciones de Java?

¿Qué tan importante es estar familiarizado con los lenguajes de programación que usa una empresa antes de solicitar un trabajo?

¿Cuáles son algunos de los temas / conceptos más importantes para el examen APAC de Google para estudiantes universitarios de 2016?

¿Alguien puede proporcionar un buen algoritmo para resolver esto con una complejidad lineal de tiempo?

¿Cuándo encuentra tiempo para mejorar sus habilidades de codificación?