Saltar al contenido

XOR de tres entradas es paridad impar, no «exactamente uno»

A XOR B XOR C es VERDADERO cuando un número impar de entradas son VERDADERAS, así que es VERDADERO cuando lo son las tres. «Exactamente uno de tres» es otra función, y las dos difieren en exactamente una fila.

La tabla compara la cadena XOR con la fórmula de «exactamente uno» escrita por extenso, (A AND NOT B AND NOT C) OR (NOT A AND B AND NOT C) OR (NOT A AND NOT B AND C). Coinciden en siete filas y difieren en la fila A = VERDADERO, B = VERDADERO, C = VERDADERO, donde tres es impar y la cadena es VERDADERA mientras que exactamente-uno es FALSO. La comprobación de equivalencia informa de esa fila como contraejemplo.

El XOR de dos entradas sí significa «exactamente uno de dos», y de ahí viene la intuición. Pero XOR es asociativo, así que A XOR B XOR C es (A XOR B) XOR C: el primer XOR es VERDADERO cuando se cumple uno de A y B, y el XOR con C lo invierte después, dando VERDADERO para una entrada o para tres. Lo mismo vale para cadenas más largas: una cadena es VERDADERA para cualquier recuento impar, y por eso calcula la paridad y por eso funciona el interruptor conmutado de tres puntos.

Cuando una regla necesita exactamente una de varias opciones, escribe los casos, como hace el ejemplo resuelto, o combina «al menos uno» con «como mucho uno»: (A OR B OR C) AND NOT ((A AND B) OR (A AND C) OR (B AND C)). El motor comprueba que las dos formas son equivalentes a la versión escrita por extenso. El motor también tiene el recuento en sí, EXACTLY(1; A, B, C): una sola compuerta, que se lee «exactamente 1 de A, B, C» y que la ley de desarrollo de una restricción de recuento reescribe como la forma escrita por extenso.

xor_chain := A XOR B XOR C · salidaexactly_one := (A AND NOT B AND NOT C) OR (NOT A AND B AND NOT C) OR (NOT A AND NOT B AND C) · salida
¿Son equivalentes xor_chain y exactly_one? No Contraejemplo: A = V, B = V, C = V · Exhaustively checked and solver cross-checked · 8 filas

Tabla de verdad

Difieren en esta fila: #7

XOR de tres entradas es paridad impar, no «exactamente uno»
#ABCxor_chainexactly_one
0FALSOFALSOFALSOFALSOFALSO
1FALSOFALSOVERDADEROVERDADEROVERDADERO
2FALSOVERDADEROFALSOVERDADEROVERDADERO
3FALSOVERDADEROVERDADEROFALSOFALSO
4VERDADEROFALSOFALSOVERDADEROVERDADERO
5VERDADEROFALSOVERDADEROFALSOFALSO
6VERDADEROVERDADEROFALSOFALSOFALSO
7VERDADEROVERDADEROVERDADEROVERDADEROFALSO

Lectura en lenguaje claro

Principiantexor_chain es verdadero exactamente cuando un número impar entre A, B y C son verdaderos (1 o 3 de ellos).
En todos los demás casos, xor_chain es falso.
Sobre los operadores:
- Una cadena de XOR es verdadera cuando un número impar de sus partes son verdaderas. Con tres partes, el caso en que las tres son verdaderas también cuenta: no significa «exactamente una».
Intermedioxor_chain es verdadero exactamente cuando un número impar entre A, B y C son verdaderos (1 o 3 de ellos).
En todos los demás casos, xor_chain es falso.
Avanzadoxor_chain es verdadero exactamente cuando un número impar entre A, B y C son verdaderos (1 o 3 de ellos) [paridad: disyunción exclusiva n-aria ⊕].
En todos los demás casos, xor_chain es falso.
Notación formal: A ⊕ B ⊕ C
XOR of three inputs is odd parity, not “exactly one” XOR of three inputs is odd parity, not “exactly one” A B C xor_chainPRIMARY exactly_one XOR OR AND NOT NOT AND NOT NOT AND NOT NOT
XOR of three inputs is odd parity, not “exactly one” XOR of three inputs is odd parity, not “exactly one” A B C xor_chainPRIMARY exactly_one XOR OR AND NOT NOT AND NOT NOT AND NOT NOT

El error habitual

Modelar una elección entre tres métodos de pago, o tres roles mutuamente excluyentes, como A XOR B XOR C. La regla acepta el caso en que los tres están seleccionados. La prueba que lo atrapa es la fila con todo VERDADERO, que es la única fila que la gente rara vez prueba.

Preguntas

¿=XOR() en Excel tiene la misma lectura?

Sí: con varios argumentos devuelve VERDADERO cuando un número impar son VERDADEROS, la misma lectura de paridad que el motor, así que tiene la misma trampa.

¿En qué filas es VERDADERO el XOR de cuatro entradas?

En las filas con una o tres entradas VERDADERAS, ocho de las dieciséis. La página del operador XOR muestra la tabla de cuatro entradas.

Relacionado

Ejemplos resueltos

Herramientas

Véase también

Errores comunes

Generado a partir del motor de Tangibool, semántica tangibool-semantics/1, motor 1.0.0, compilación . Cada tabla, mapa, simplificación y veredicto de estas páginas lo calculó el motor de Tangibool al compilar el sitio, y cada afirmación la volvió a comprobar el mismo verificador exacto que usa la app. Los límites se indican donde aplican. © 2026 Foreranger LTD.