确定布尔变量的值

时间:2015-07-21 14:07:25

标签: python numpy

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

C = A [OP] B

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

确定A和B的值。

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

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

1 个答案:

答案 0 :(得分:5)

,如果您只是给出C的值和使用的操作,则肯定确定确定A和B.

需要一个反例来反驳它:

C= True
OP= |

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

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

例如,如果

A & B == False
A | B == True
A ^ B == True

A=True, B=FalseA=False, B=True都满足条件。

如果我们不对您可以测试的表达式应用 ,那么获取B(例如)的值非常简单:只评估C=(A|~A)|B结果将等于B

但是,如果你没有任何限制,你可以说C=B并直接测试它!