es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Suma resultante de un arreglo cuando cada elemento es XORado por una constante.

Dado un array nums = {1,2,3} y una constante C = 4, la tarea es encontrar la suma de los elementos del array donde cada elemento es primero XOR por la constante C.

Resultado: (1⊕ 4) + (2 ⊕ 4) + (3 ⊕ 4) = 18

Cuando solo tenemos una constante, se puede hacer fácilmente, pero ¿qué pasa si tenemos K constantes? ¿Cómo podemos encontrar el resultado anterior?

Ejemplo: nums = {1,2,3}
Constantes = 4, 5, 6
Entonces, para cada constante (consultas), necesitamos evaluar la respuesta.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para encontrar la suma de los elementos del arreglo XORed con K dados los valores constantes, podemos usar el siguiente algoritmo:

    1. Inicializar una variable “resultado” en 0.
    2. Para cada constante C en el arreglo de constantes:
      a. Inicializar una variable “temporal” en 0.
      b. Para cada elemento “num” en el arreglo “nums”:
      i. XOR “num” con la constante C, y añadir el resultado a “temporal”.
      c. Añadir “temporal” a “resultado”.
    3. Devolver el valor de “resultado”.

    Usando este algoritmo, iteramos a través de cada constante y realizamos la operación XOR con cada elemento en el arreglo. La suma de estos valores XORed se acumula en la variable “resultado”, la cual devolvemos al final.

    Para el ejemplo dado, el algoritmo procedería de la siguiente manera:

    1. Inicializar “resultado” en 0.
    2. Para la primera constante C=4:
      a. Inicializar “temporal” en 0.
      b. Para cada elemento en “nums”:
      i. XOR el elemento con 4.
      ii. Añadir el resultado a “temporal”.
      c. Añadir “temporal” a “resultado”.
    3. Para la segunda constante C=5:
      a. Inicializar “temporal” en 0.
      b. Para cada elemento en “nums”:
      i. XOR el elemento con 5.
      ii. Añadir el resultado a “temporal”.
      c. Añadir “temporal” a “resultado”.
    4. Para la tercera constante C=6:
      a. Inicializar “temporal” en 0.
      b. Para cada elemento en “nums”:
      i. XOR el elemento con 6.
      ii. Añadir el resultado a “temporal”.
      c. Añadir “temporal” a “resultado”.
    5. Devolver el valor de “resultado”.

    El resultado final sería (1⊕4)+(2⊕4)+(3⊕4) + (1⊕5)+(2⊕5)+(3⊕5) + (1⊕6)+(2⊕6)+(3⊕6) = 54.

Comments are closed.