Python 确定布尔变量的值
考虑两个布尔变量A和B,以及对这些变量的一些逻辑运算,得出C:Python 确定布尔变量的值,python,numpy,Python,Numpy,考虑两个布尔变量A和B,以及对这些变量的一些逻辑运算,得出C: C = A [OP] B 其中“OP”可以是“&”、“|”、“^”、“~”等的任意组合 A和B的值有待确定 是否可以使用逻辑运算创建一系列测试,以便仅基于每个测试的C值确定a和B的真/假值 由于应用程序是使用NumPy开发的,因此我最感兴趣的是本软件包中的运算符。否,如果只给出C值和使用的运算,则无法确定A和B 需要一个反例来证明这一点: C= True OP= | A和B有三种可能的有效状态:A=True,B=True,A=T
C = A [OP] B
其中“OP”可以是“&”、“|”、“^”、“~”等的任意组合
A和B的值有待确定
是否可以使用逻辑运算创建一系列测试,以便仅基于每个测试的C值确定a和B的真/假值
由于应用程序是使用NumPy开发的,因此我最感兴趣的是本软件包中的运算符。否,如果只给出C值和使用的运算,则无法确定A和B 需要一个反例来证明这一点:
C= True
OP= |
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
A=True,B=False
和A=False,B=True
都满足条件
如果我们对可以测试的表达式没有任何限制,那么获取
B
(例如)的值就很简单:只需计算C=(A | ~A)| B
,结果将等于B
但是,如果你没有任何限制,你可以直接说
C=B
,然后直接测试它 否,如果只给出C的值和使用的运算,则无法确定A和B
需要一个反例来证明这一点:
C= True
OP= |
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
A=True,B=False
和A=False,B=True
都满足条件
如果我们对可以测试的表达式没有任何限制,那么获取
B
(例如)的值就很简单:只需计算C=(A | ~A)| B
,结果将等于B
但是,如果你没有任何限制,你可以直接说
C=B
,然后直接测试它 你认识C和接线员吗?我不明白你怎么能仅仅根据C来确定A和B。例如,如果C是真的,右边可以是A或B,A和B,等等。你知道C和操作员吗?我不明白你怎么能仅仅根据C来确定A和B。例如,如果C是真的,右手边可以是A或B,A和B等等。但是,如果有足够多的C/op对,这是可能的。例如,True/|和False/^将提供足够的信息来知道A和B都是真的。是的,这就是我想要的:一系列的测试。@cytochrome你想做的测试有什么限制吗?你能在一个测试中使用任意数量的逻辑运算符吗?Aso,如果你能编写任何你想要的测试,为什么不直接测试a
和B
的值呢?我认为你需要更准确地说明这里的限制是什么。同时,我更新了这个问题来处理&
,|
和^
@chepner在您的特定示例中是可能的,但不是一般意义上的(对于交换操作)。我在回答中添加了一个反例。不过,如果有足够多的C/op对,这是可能的。例如,True/|和False/^将提供足够的信息来知道a和B都是真的。是的,这就是我想要的:一系列测试。@细胞色素对你想要进行的测试有任何限制吗?你能在一个测试中使用任意数量的逻辑运算符吗?Aso,如果你能编写任何你想要的测试,为什么不直接测试a
和B
的值呢?我认为你需要更准确地说明这里的限制是什么。同时,我更新了这个问题来处理&
,|
和^
@chepner在您的特定示例中是可能的,但不是一般意义上的(对于交换操作)。我在答案中加了一个反例