¿Qué es XOR?

La operación XOR lógica se denomina XOR. XOR, en inglés es exclusivoOR, abreviado como xo. OR exclusivo (xor) es un operador matemático. Se utiliza en operaciones lógicas. El símbolo matemático de XOR es "⊕" y el símbolo de computadora es "xor". El algoritmo es:

a⊕b=(?a∧b)∨(a∧?b)

Si los dos valores a y b no son iguales , el resultado XOR será 1. Si los valores de a y b son iguales, el resultado XOR es 0.

XOR también se llama operación de media suma. Su regla de operación es equivalente a la suma binaria sin acarreo: en binario, 1 representa verdadero y 0 representa falso. La regla de operación de XOR es: 0⊕0 =0, 1⊕0=1, 0⊕1=1, 1⊕1=0 (lo mismo es 0, la diferencia es 1), estas reglas son las mismas que la suma, pero sin acarreo.

Propiedades de la operación XOR lógica

1. Ley conmutativa

2. Ley asociativa (es decir, (a^b)^c==a^(b^). c))

3. Para cualquier número x, x^x=0, x^0=x

4. La operación XOR se usa más comúnmente en la división polinómica, pero su propiedad más importante es la reflexividad: AXORBXORB=A, es decir, para un número dado A, use el mismo factor de operación (B) para realizar dos operaciones XOR. Finalmente, aún obtenemos A en sí mismo. Esta es una propiedad mágica que puede dar lugar a muchas aplicaciones interesantes. Por ejemplo, todos los libros de texto de programación señalarán a los principiantes que para intercambiar los valores de dos variables se debe introducir una variable intermedia. Pero si usa XOR, puede ahorrar el espacio de almacenamiento de una variable: dadas dos variables A y B, los valores almacenados son a y b respectivamente, entonces las siguientes tres líneas de expresiones intercambiarán sus expresiones de valor (valores ) :

A=AXORB(aXORb)

B=BXORA(bXORaXORb=a)

A=AXORB(aXORbXORa=b)

Del mismo modo, esta operación también se puede aplicar en muchos campos como cifrado, transmisión de datos, verificación, etc.

Cómo calcular la operación XOR lógica

La operación XOR lógica se denomina XOR. El nombre en inglés es exclusivoOR, o abreviado como xor.

OR exclusivo (xor) es un operador matemático. Se utiliza en operaciones lógicas. El símbolo matemático de XOR es "⊕" y el símbolo de computadora es "xor". El algoritmo es:

a⊕b=(?a∧b)∨(a∧?b)

Si los dos valores a y b no son iguales , el resultado XOR será 1. Si los valores de a y b son iguales, el resultado XOR es 0.

Lógica XOR

Expresión lógica: F=AB'⊕A'B ((AB'⊕A'B)'=AB⊙A'B', ⊙ es " OR exclusivo operación)

La tabla de verdad de la lógica OR exclusiva se muestra en la Figura 1

, y su símbolo lógico se muestra en la Figura 2. La relación de la lógica XOR es: cuando AB es diferente, la salida P=1; cuando AB es igual, la salida P=0. "⊕" es el símbolo de operación XOR, y la lógica XOR también es una combinación de AND o no lógica. Su expresión lógica es:

P=A⊕B

Como puede ser. Visto en la Figura 1, las reglas de la operación XOR son

0⊕0=0, 0⊕1=1

1⊕0=1, 1⊕1=0

Función: Toma 0 para lo mismo, 1 para la diferencia

De hecho, la definición de XOR en inglés es uno (isone), pero no ambos, es decir, cuando solo uno es verdadero (1), tome el verdadero (1).

Aplicación de la operación XOR lógica

1-1000 se coloca en una matriz que contiene 1001 elementos. Solo se repite el valor de un elemento y los demás solo aparecen una vez.

Solo se puede acceder a cada elemento de la matriz una vez. Diseñe un algoritmo para encontrarlo. ¿Puede diseñar un algoritmo para implementarlo sin espacio de almacenamiento auxiliar?

Solución 1. Al parecer alguien ha propuesto una solución más interesante, suma todos los números y resta 1 2. suma de 1000.

Este algoritmo es bastante perfecto. Creo que la respuesta estándar del interrogador es este algoritmo. El único problema es que si la secuencia es demasiado grande, puede provocar un desbordamiento.

La solución 2, XOR, no tiene este problema y tiene mejor rendimiento.

XOR todos los números y el resultado es 1^2^3^. Los resultados de .^1000 se realizan con XOR y el resultado es el número de repeticiones.

Sin embargo, aunque este algoritmo es muy sencillo, no es fácil de demostrar. Esto está relacionado con varias características de la operación XOR.

En primer lugar, la operación XOR satisface la ley conmutativa y la ley asociativa.

Entonces, 1^2^.. .^n^.. .^n^.. .^1000, no importa dónde aparezcan estos dos n, se pueden convertir en 1^2^.. En forma de .^1000^(n^n).

En segundo lugar, para cualquier número x, x^x=0, x^0=x.

Entonces 1^2^.. .^n^.. .^n^.. .^1000 = 1^2^.. .^1000^(n^n) = 1^2^.. .^1000^0 = 1^2^.. .^1000 (es decir, el OR exclusivo de todos los números de la secuencia excepto n).

Orden, 1^2^.. El resultado de .^1000 (n no está incluido en la secuencia) es T

luego 1^2^.. El resultado de .^1000 (n está incluido en la secuencia) es T^n.

T^ (T^n)=n.

Entonces, aplica XOR a todos los números y el resultado es igual a 1^2^3^. Los resultados de .^1000 se realizan con XOR y el resultado es el número de repeticiones.

Por supuesto que algunas personas dirán, 1 2. El resultado de 1000 tiene la ley de Gauss para un cálculo rápido, pero en realidad es 1^2^. El resultado de .^1000 también es regular y el algoritmo debería ser mucho más simple que la ley de Gauss.

Transformación de la pregunta de la entrevista de Google: una matriz almacena una cantidad de números enteros. Un número aparece un número impar de veces y el resto de los números aparecen un número par de veces. cantidad de veces?

Hay muchas soluciones, pero la mejor es la misma que la anterior, que es XOR todos los números, y la estructura final es lo que estás buscando. El principio es el mismo que el anterior.

p>