【发布时间】:2017-01-02 10:53:28
【问题描述】:
如何编写能够验证设置为 true 的变量数量的布尔表达式?我将提供一个我试图解决的问题的简化示例。请在回答之前阅读整个问题,因为实际问题在最后。
声明:
3 个布尔变量:a b c
int 预期 = 2
我如何编写一个布尔表达式,它能够验证在 3 个布尔变量中恰好有 2 个设置为真。如果 exactly 2 个布尔变量设置为 true,则类似于 problem = (a + b + c) == 2 其中 problem 将为 true。
这是问题的简化版本,正好有 3 个布尔变量和预期 = 2,我们可以用 problem = (a & b) | (b & c) | (c & a) 解决问题
然而我的问题是,我们如何使用 n 个布尔变量来解决这个问题,以及使用 一阶逻辑expected 变量的变化量 包括逻辑连接词、谓词和量词。
我想强调的是,我不是在寻找任何特定语言的实际代码,而只是一个命题/谓词表达式。
【问题讨论】:
标签: math boolean predicate boolean-expression boolean-operations