三个值的异或运算
XOR operation on three values
我有三个布尔值。如果三个都是 true
或者三个都是 false
,我需要 return false
。我会 return true
在所有其他情况下。根据我的研究,在某些规范中,这称为三变量异或。
编辑:一些规范声称三变量 XOR 涉及唯一的 true
结果将来自只有一个参数为 true
的集合。我这里指的 XOR 是另一种规范,其中多个值可能是 true
,但不是全部。
执行此操作最快的方法是什么? a xor b xor c
无效
如果不是三个而是n个参数呢?
这是我想要的操作的真相 table(具有三个参数的异或)。
A B C -
T T T F
T T F T
T F T T
T F F T
F T T T
F T F T
F F T T
F F F F
使用这个
(A xor B) or (B xor C)
也适用于 n
输入。
(A xor B) or (B xor C) ... or (n xor n+1)
要为此制定算法,您需要知道如何在三变量中使用卡诺图。查看示例卡诺图 here
好的。首先,为了让事情更简单,将 T 替换为 1 并将 F 替换为 0 实际上 table.
乍看就是一个递增的3位二进制。因此,以递增的方式排列它是一个好主意。往下看。
A B C F(A,B,C)
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 0
通过使用卡诺图,您将得到下面的布尔表达式。
对于第一个表达式,我们得到 A'B .
对于第二个表达式AB' .
对于第三个表达式 B'C 。
对于第四个表达式BC' .
简单理解卡诺图,如果所有1的都在一个变量的table的直视范围内,那么一个表达式将只包含该变量.但是如果1的在那个变量的直视范围之外,那么,就是对那个变量的恭维
F(A,B,C) = A'B + AB'+ B'C + BC'
但是自从
A XOR B = AB'+ A'B
B XOR C = BC'+ B'C
那么我们的简化形式就是
F(A,B,C) = A XOR B + B XOR C
对于伪代码编程,相当于
result = (A XOR B) OR (B XOR C)
//other else
result = (A ^ B) | (B ^ C)
听说是我的python实施
def xor_three(a, b, c):
return (a ^ b) or (b ^ c)
A = True
B = False
C = True
print(xor_three(A, B, C))
我有三个布尔值。如果三个都是 true
或者三个都是 false
,我需要 return false
。我会 return true
在所有其他情况下。根据我的研究,在某些规范中,这称为三变量异或。
编辑:一些规范声称三变量 XOR 涉及唯一的 true
结果将来自只有一个参数为 true
的集合。我这里指的 XOR 是另一种规范,其中多个值可能是 true
,但不是全部。
执行此操作最快的方法是什么?
a xor b xor c
无效如果不是三个而是n个参数呢?
这是我想要的操作的真相 table(具有三个参数的异或)。
A B C -
T T T F
T T F T
T F T T
T F F T
F T T T
F T F T
F F T T
F F F F
使用这个
(A xor B) or (B xor C)
也适用于 n
输入。
(A xor B) or (B xor C) ... or (n xor n+1)
要为此制定算法,您需要知道如何在三变量中使用卡诺图。查看示例卡诺图 here
好的。首先,为了让事情更简单,将 T 替换为 1 并将 F 替换为 0 实际上 table.
乍看就是一个递增的3位二进制。因此,以递增的方式排列它是一个好主意。往下看。
A B C F(A,B,C)
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 0
通过使用卡诺图,您将得到下面的布尔表达式。 对于第一个表达式,我们得到 A'B .
对于第二个表达式AB' .
对于第三个表达式 B'C 。
对于第四个表达式BC' .
简单理解卡诺图,如果所有1的都在一个变量的table的直视范围内,那么一个表达式将只包含该变量.但是如果1的在那个变量的直视范围之外,那么,就是对那个变量的恭维
F(A,B,C) = A'B + AB'+ B'C + BC'
但是自从
A XOR B = AB'+ A'B
B XOR C = BC'+ B'C
那么我们的简化形式就是
F(A,B,C) = A XOR B + B XOR C
对于伪代码编程,相当于
result = (A XOR B) OR (B XOR C)
//other else
result = (A ^ B) | (B ^ C)
听说是我的python实施
def xor_three(a, b, c):
return (a ^ b) or (b ^ c)
A = True
B = False
C = True
print(xor_three(A, B, C))