Saltar al contenido

Demostrar que XOR es conmutativo y asociativo?

Luego de de una extensa recopilación de datos hemos podido solucionar esta inconveniente que pueden tener algunos lectores. Te regalamos la solución y esperamos serte de gran apoyo.

Solución:

Uso $cdot$ para indicar AND y $+$ para indicar OR. $a oplus b$ viene dado por $acdotbarb+bcdotbara$. ¿Ves por qué? ¿Ves por qué esto es conmutativo?

Para la asociatividad, desea mostrar que $(a oplus b) oplus c=a oplus (b oplus c)$. El lado izquierdo se expande como

$$(a oplus b)cdotbarc+overline(a oplus b)cdot c$$ $$(acdotbarb+bcdotbara )cdotbarc+overline(acdotbarb+bcdotbara)cdot c$$

Use las reglas del álgebra booleana (leyes de Demorgan, leyes distributivas, etc.) para expandir esto. Luego haz lo mismo para el otro lado y muestra que las expansiones son iguales.

Una forma intuitiva de entender por qué XOR es asociativo es la siguiente:

Primero reconozca que XOR es conmutativo, es decir, $a oplus b = b oplus a$. Esto se puede hacer usando una tabla de verdad o como en la respuesta de Robert Mastragostino.

Luego, piense en el operador XOR como un operador de ‘volteo condicional’, es decir, piense en $a oplus b$ como diciendo si $a$ es 1, tome $b$ volteado como la salida, mientras que si $a$ es 0 , tome $b$ como salida. Debido a la propiedad conmutativa, $a oplus b$ es completamente equivalente a $b oplus a$ que dice que $b$ voltea condicionalmente $a$.

Ahora considere $a oplus (b oplus c)$. Esto quiere decir que $b$ voltea condicionalmente $c$, cuyo resultado es volteado condicionalmente por $a$. Debido a la naturaleza de la operación de voltear, en última instancia, $c$ se voltea condicionalmente tanto por $b$ como por $a$, y no importa en qué orden se realicen estas dos operaciones de volteo. Por esto, se ve que $a oplus (b oplus c)$ es equivalente a $b oplus (a oplus c)$.

Finalmente, al usar la conmutatividad, se puede escribir $a oplus (b oplus c) = (b oplus c) oplus a$, que se acaba de demostrar que es equivalente a $b oplus (a oplus c)$ , equivalente a $b oplus (c oplus a)$ por conmutatividad.

Por lo tanto, $(b oplus c) oplus a = b oplus (c oplus a)$ lo que prueba la asociatividad.

Una forma intuitiva de convencerte de que $oplus$ es asociativo es el siguiente. (Nota: en realidad no lo estamos probando a través de álgebra rígida aquí, pero creo que es un argumento muy intuitivo y muestra otra forma agradable de ver $oplus$.)

Primero echemos un vistazo a la tabla de verdad de nuevo:
empezararraycc x & y & xoplus y\ hline 0 & 0 & 0\ 0 & 1 & 1\ 1 & 0 & 1\ 1 & 1 & 0\ endarrayConmutatividad: A partir de la tabla de verdad, podemos convencernos fácilmente de que podemos conmutar los argumentos. Ya que en cualquier caso conmutarlo nos dará el mismo resultado.

Asociatividad: Además, vemos en la tabla de verdad que podemos ver que podemos reescribir $xo más y$ como predicado y adición:
$$ xoplus y quadLongleftrightarrow quad textimpar(x+y) $$
Ahora usando esta forma de reescribir el $oplus$podemos ver fácilmente que $oplus$ es asociativo.
$$ beginalign* xoplus (yoplus z) &Longleftrightarrow textimpar(x+textimpar(y+z))\ &Longleftrightarrow textimpar(x +y+z)\ &Longleftrightarrow textimpar(textimpar(x+y)+z)\ &Longleftrightarrow (xoplus y)oplus z endalign* $ ps

No se te olvide dar difusión a esta noticia si si solucionó tu problema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *