使用数学运算符的异或(a − b)²

2022-09-02 19:26:39

如何使用基本的数学运算符(如 +,-,*,/ )实现 XOR

更新:实际上,我需要跟踪两个具有布尔值的矩阵中的变化。这可以通过使用XOR将每个值与其他矩阵中的相应值进行XOR运算来完成。但是,Lp_Solve库不支持XOR操作。此外,它只接受线性方程。


答案 1

(a − b)²

3D plot of (a − b)²

这之所以有效,是因为:

(a − b)² = a * (a − b) + b * (b − a)

由于 Z₂ 中的乘法是共轭 (),并且是否定 (),因此上述公式等价于 XOR for :&1 - a!a, b ∈ {0, 1}

(a & !b) | (b & !a)

请参阅Pascal Cuoq在下面的评论,解释为什么这不能是一个线性方程


答案 2

我能想到的最简单的表达式是:.a != b

(以前最好的努力是(a + b) == 1)


推荐