确定布尔变量的值

cyt*_*ome 1 python numpy

考虑两个布尔变量A和B,以及这些变量的一些逻辑运算,得到C:

C = A [OP] B
Run Code Online (Sandbox Code Playgroud)

其中'OP'可以是'&','|','^','〜'等的任意组合.

A和B的值将被确定.

是否可以使用逻辑运算创建一系列测试,以便仅根据每个测试的C值确定A和B的真/假值?

由于应用程序是使用NumPy开发的,我最感兴趣的是此软件包中原生的运算符.

gon*_*opp 5

,你不能绝对确定A和B,如果你只是给使用C的值,并且操作.

需要一个反例来反驳它:

C= True
OP= |
Run Code Online (Sandbox Code Playgroud)

有A和B三种可能的有效状态:A=True, B=True,A=True, B=False,A=False, B=True


对于多个(用户选择的)测试,我们得到相同的结果,如果你限制自己&,|^(xor).在一般情况下显然是不可能的 - 因为操作是可交换的,所以你不能分开A和B.

举个例子,如果

A & B == False
A | B == True
A ^ B == True
Run Code Online (Sandbox Code Playgroud)

既满足A=True, B=FalseA=False, B=True满足条件.


如果我们对你可以测试的表达式完全没有任何限制,那么获取B(例如)的值是微不足道的:只是求值C=(A|~A)|B并且结果将等于B

但是,如果你没有任何限制,你可以直接说出来C=B进行测试!