计算布尔表达式

时间:2016-08-25 21:21:30

标签: math boolean predicate boolean-expression boolean-operations

如何编写一个能够验证设置为true的变量数量的布尔表达式?我将提供一个我想解决的问题的简化示例。请在回答之前阅读整个问题,因为实际问题已经到了最后。

声明:

  

3个布尔变量: a b c

     

int 预期 = 2

如何编写一个布尔表达式,能够验证3个布尔变量中是否有2个设置为true。如果完全 2个布尔变量设置为true,则problem = (a + b + c) == 2中的某些内容将{true}为真。

这是问题的简化版本,正好有3个布尔变量,期望= 2我们可以用problem来解决问题

我的问题是,我们如何使用 n 布尔变量来解决这个问题,使用一阶逻辑<预期变量的变化量/ strong>包括逻辑连词,谓词和量词。

我想强调的是,我不是在寻找任何特定语言的实际代码,而只是寻找命题/谓词表达式。

1 个答案:

答案 0 :(得分:0)

如果您认为false解析为0而true解析为1,那么您可以这样做:

ans = ((a + b + c + ... + z) == expected)

其中a..z是布尔变量(可能来自其他表达式&#39;评估),expected是您想要的真实条件数。