标签: boolean-expression

计算布尔函数密度的算法

我正在尝试编写一个程序,该程序需要计算处理布尔函数的特定值。给定一个单输出布尔函数 f,由覆盖 F 给出,假设我将函数的密度定义为函数值为 1 的所有输入向量的分数。

例如,假设我传入给定的函数 f(a, b, c),它由 cover F = ab'+c' 定义。该函数有 5 个 ON-set minterms,总共 8 个 minterms,因此其密度为 d(f) = 5/8 = 0.625。应该注意的是,立方体 ab' 覆盖了 2 个最小项,立方体 c' 覆盖了 4 个最小项,但是这些最小项之一被两个立方体覆盖。

谁能想到一个好的算法来处理这个问题?我强烈怀疑最好以递归方式表达,但我无法确定有效的东西。

algorithm boolean-logic boolean cad boolean-expression

2
推荐指数
1
解决办法
932
查看次数

使用多个 WHEN 条件触发

如何包含需要监控的列?即WHEN我想要三个WHEN条件而不是一个条件:

CREATE  TRIGGER freeradius.insert_into_day_summations 
     BEFORE INSERT ON freeradius.day_guiding_usage
     FOR EACH ROW 
     WHEN (OLD.col1 IS DISTINCT FROM NEW.col1)
     WHEN (OLD.col2 IS DISTINCT FROM NEW.col2)
     WHEN (OLD.col3 IS DISTINCT FROM NEW.col3)
EXECUTE procedure update_sessioninfo();
Run Code Online (Sandbox Code Playgroud)

postgresql ddl triggers boolean-expression

2
推荐指数
1
解决办法
7457
查看次数

为什么`a <b <c`在Python中有效?

标题说明了一切.例如,1<2<3返回True2<3<1返回False.

它的功能很棒,但我无法解释它为什么有效......我在文档中找不到任何相关内容.它总是:expression boolean_operator expression,而不是两个布尔运算符).另外:a<b返回一个布尔值,boolean boolean_operator expression并不解释行为.

我确信这个解释几乎是明显的,但我似乎很想念它.

python boolean-expression

2
推荐指数
1
解决办法
103
查看次数

评估Pharo中的不平等

由于我不了解Pharo smalltalk中的任何不等运算符,因此很难检查字符串的不等式.这是我目前的代码:

[ contact password = contact confirmPassword and: firstTime = false and: (contact password = '' ifTrue:[^false])]   whileFalse: [ code]
Run Code Online (Sandbox Code Playgroud)

即这部分:
(contact password = '' ifTrue:[^false])

我究竟做错了什么?有没有更好的方法来检查字符串是否为空?

boolean-logic smalltalk squeak boolean-expression pharo

2
推荐指数
2
解决办法
169
查看次数

如果condtion,则为布尔值

以下代码片段抛出NullPointerException.我试图了解if条件的工作流程.如果只是true并且falseif条件的有效参数,为什么Java编译器不会抛出错误?

 Boolean booleanFlag = null;

 if(booleanFlag) {
     System.out.println("Why this boolean flag code is executed?");
 }
Run Code Online (Sandbox Code Playgroud)

java boolean-expression

2
推荐指数
2
解决办法
177
查看次数

如何计算将布尔表达式字符串括起来以评估所需结果的方法数

直接来自 CTCI,8.14:给定一个由符号 0(假)、1(真)、&(与)、| 组成的布尔表达式 (OR) 和 ^(XOR) 以及所需的布尔结果值 result 实现一个函数来计算将表达式括起来的方式的数量,以便它评估结果。

我正在尝试一种蛮力方法来计算每个可能的组合,如果匹配所需的结果,则将其添加到数组(组合)并返回该结果长度。它似乎适用于大多数表达式,但不适用于给出的第二个示例。我似乎缺少什么?

function countEval(s, goalBool, combos = []) {
    // on first call make s into array since theyre easier to work with
    if (!(s instanceof Array)) {
        // and turn 1s and 0s into their bool equivalent
        s = s.split('').map((item) => {
            if (item === '1') {
                return true;
            } else if (item === '0'){
                return false;
            } else {
                return item;
            }
        });
    }
    if (s.length === 1 …
Run Code Online (Sandbox Code Playgroud)

javascript algorithm recursion dynamic-programming boolean-expression

2
推荐指数
1
解决办法
692
查看次数

SQL SELECT中的布尔逻辑

有没有更简单的实施方法

select (case when ((a is null) or (b is null)) then null else (case when
(a = b) then true else false end) end) from ...
Run Code Online (Sandbox Code Playgroud)

在PostgreSQL或其他主要的RDBMS中呢?

sql postgresql boolean-expression

2
推荐指数
1
解决办法
55
查看次数

在 R 编程中,&amp; 与 &amp;&amp; 和 | 之间有什么区别?对||

我知道 && 和 || 的部分 编写更高效的代码,因为它们在链中进行的测试次数最少,并且一旦我们有足够的信息知道链的结果将是什么,就会立即爆发。

  • 只要 && 在链中遇到 FALSE,它就会停止评估并为整个链返回 FALSE。
  • 一旦|| 在链中命中 TRUE 它停止评估并为链返回 TRUE

但是我在 Garrett Grolemund 的书中读到“...双运算符并不适用于所有地方。&& 和 || 不是矢量化的,这意味着它们只能在运算符的每一侧处理单个逻辑测试......”有人可以吗向我解释强调的部分是什么意思?

做了一些简单的测试,而 & 在两个逻辑向量的相应元素之间进行元素比较时,&& 只比较第一个元素并返回 TRUE,因为运算符没有被向量化?这就是上面强调的所有部分的意思,还是还有更多意思?

c(T, F, F, F, F) & c(T, T, F, T, F)
[1]  TRUE FALSE FALSE FALSE FALSE

c(T, F, F, F, F) && c(T, T, F, T, F)
[1] TRUE

c(F, F, F, F, F) && c(T, T, F, T, F)
[1] FALSE
Run Code Online (Sandbox Code Playgroud)

使用anyand将运算符任一侧的向量折叠为一个布尔值all。 …

r boolean-expression booleanquery

2
推荐指数
1
解决办法
155
查看次数

如何编写以下布尔表达式?

我有三个布尔值A,B和C.我需要编写一个IF语句,当且仅当这些值中不超过一个为True时才会执行.换句话说,这是真值表:

 A | B | C | Result
---+---+---+--------
 0 | 0 | 0 |   1
 0 | 0 | 1 |   1
 0 | 1 | 0 |   1
 0 | 1 | 1 |   0
 1 | 0 | 0 |   1
 1 | 0 | 1 |   0
 1 | 1 | 0 |   0
 1 | 1 | 1 |   0
Run Code Online (Sandbox Code Playgroud)

写这个的最好方法是什么?我知道我可以列举所有可能性,但这似乎......太冗长了.:P

补充:刚才有一个想法:

!(A && B)&&!(B && C)&&!(A && C)

这将检查没有设置两个值.关于总和的建议也是可以的.更可读也许......

(A≥1:0)+(B≤1:0)+(C≥1:0)<= 1

PS这是用于生产代码,所以我的代码可读性要高于性能.

补充2: …

boolean-expression

1
推荐指数
3
解决办法
3483
查看次数

如何使布尔表达式更短?或或或或

var = raw_input()

if "0" in var or "1" in var or "2" in var or "3" in var or "4" in var or "5" in var or "6" in var or "7" in var or "8" in var or "9" in var:
    print "yay"
else:
    print: ":("
Run Code Online (Sandbox Code Playgroud)

有没有办法让我缩短我不必写所有数字?没关系,如果是(0,10),如果它是(0,10000)

以某种方式在这里使用列表是否可能?

python boolean-expression

1
推荐指数
2
解决办法
297
查看次数