我正在为WQL查询创建一个表达式,以便在没有该软件的Version1或Version2的机器上定位软件部署。
我提出了两个表达式,它们似乎都有相同的结果,并希望对你运行这个逻辑,看看这些表达式是否真的相同?如果是这样,我可能会去表达1。
表达式1:
将Software.version1部署到“Group1”AND中的机器IF机器IS 机器不是Software.version1 AND机器不是Software.version2
表达式2:
将Software.version1部署到“Group1”AND中的机器IF机器IS( 机器不是Software.version1或机器不是Software.version2)
我的大脑开始受伤了。
非常感谢
答案 0 :(得分:2)
在表达式1中,所有三个条件必须为真(组1中的机器而不是版本1而不是版本2)。在表达式2中,两个条件必须为真:计算机在组1中而不是版本1或计算机是组1而不是版本2.
假设机器不能同时具有版本1和版本2,如果机器在组1中,则第二个表达式将始终为真。如果机器在组中,则第一个表达式将为真1并且既没有版本1也没有版本2.
从逻辑上讲,你有:
exp1 = g1 ∧ ~v1 ∧ ~v2
exp2 = g1 ∧ (~v1 ∨ ~v2)
= g1 ∧ ~(v1 ∧ v2) // by DeMorgan's theorem
所以答案是不,两个表达式不等同。如果你不明白为什么,请写出所有三个条件和两个表达式的真值表。
答案 1 :(得分:0)
我对langue不熟悉,但逻辑看起来非常简单。
如果我正确理解了这个问题,你想要:
这将通过表达式1来实现。
表达式2将返回:
我强烈建议你测试langue会帮助你做什么(我确定有某种打印bool功能),并且因为测试不多,所以真的,只测试所有三个或四个可能性,看看它是否会返回你想要的东西。