【问题标题】:Count number of true variables in a boolean expression计算布尔表达式中真实变量的数量
【发布时间】: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


    【解决方案1】:

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

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

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

    【讨论】:

    • 我的问题是我如何仅使用一阶逻辑编写ans = ((a + b + c + ... + z) == expected),这就是我卡住的地方。
    猜你喜欢
    • 2016-04-08
    • 1970-01-01
    • 2023-04-02
    • 2012-09-27
    • 1970-01-01
    • 2013-05-01
    • 2012-07-28
    • 2014-03-11
    • 1970-01-01
    相关资源
    最近更新 更多