考虑两个布尔变量A和B,以及这些变量的一些逻辑运算,得到C:
C = A [OP] B
Run Code Online (Sandbox Code Playgroud)
其中'OP'可以是'&','|','^','〜'等的任意组合.
A和B的值将被确定.
是否可以使用逻辑运算创建一系列测试,以便仅根据每个测试的C值确定A和B的真/假值?
由于应用程序是使用NumPy开发的,我最感兴趣的是此软件包中原生的运算符.
不,你不能绝对确定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=False又A=False, B=True满足条件.
如果我们对你可以测试的表达式完全没有任何限制,那么获取B(例如)的值是微不足道的:只是求值C=(A|~A)|B并且结果将等于B
但是,如果你没有任何限制,你可以直接说出来C=B进行测试!
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |