标签: boolean-expression

重构布尔表达式的工具

我正在寻找一个重构布尔表达式的工具.我有像这样的表情

a1 => (b1 <=> c or d) AND 
a2 => (b2 <=> c or d) AND
a2 => (b2 <=> c or d) 
Run Code Online (Sandbox Code Playgroud)

该工具应该能够简化表达式,例如在上面的例子中提取子表达式"c或d".是否有免费的计算机代数系统可以做到这一点?

目前我想手动重构表达式,用一点haskell quickcheck脚本证明等价.

refactoring boolean-logic boolean-expression

6
推荐指数
1
解决办法
2065
查看次数

如何将简单的布尔语句转换为SQL?

我有以下数据库表,其中包含有关人员,疾病和药物的信息:

PERSON_T              DISEASE_T               DRUG_T
=========             ==========              ========
PERSON_ID             DISEASE_ID              DRUG_ID
GENDER                PERSON_ID               PERSON_ID
NAME                  DISEASE_START_DATE      DRUG_START_DATE
                      DISEASE_END_DATE        DRUG_END_DATE
Run Code Online (Sandbox Code Playgroud)

从这些表格中,我得到了一些关于哪些人服用哪种药物和哪些疾病的统计数据.从中我可以弄清楚哪些模式对我来说是有趣的深入研究.例如,下面是我可能为疾病52找到的布尔模式的简化示例:

( (Drug 234 = false AND Drug 474 = true AND Drug 26 = false) OR 
  (Drug 395 = false AND Drug 791 = false AND Drug 371 = true) )
Run Code Online (Sandbox Code Playgroud)

编辑: 这是另一个例子:

( (Drug 234 = true AND Drug 474 = true AND Drug 26 = false) OR 
      (Drug 395 = false AND Drug 791 = false AND Drug 371 …
Run Code Online (Sandbox Code Playgroud)

sql database join boolean-expression

6
推荐指数
1
解决办法
638
查看次数

0.1 + 0.7!= 0.8

可能重复:
JavaScript的数学是否被破坏?

为什么在某些编程语言中,title中的表达式求值为true?我在php,ruby和python中尝试过它.

floating-point floating-accuracy boolean-expression

6
推荐指数
1
解决办法
2101
查看次数

括号内的字符串,以便表达式采用给定值

以下问题来自Vazirani等人的“动态编程”一章。等


[6.6]让我们在三个符号a上定义一个乘法运算(×);b; c根据下表:

乘法表

因此,a×a = b,a×b = b等。

找到一种有效的算法,该算法检查这些符号的字符串(如bbbbac),并确定是否可以以使结果表达式的值为a的方式对字符串加上括号。例如,在输入bbbbac上,您的算法应返回yes,因为((b(bb))(ba))c = a。


这是我的方法:将其映射到此处计算布尔括号数量的问题。在该问题中,将为您提供以下形式的布尔表达式

T F T xor T

并且您需要找到多种方法将此方法加括号,以使其评估为true。

我们可以将xor视为遵循某些规则的运算符(T xor F = T等),并对采用值T或F的操作数进行操作。对于我们的原始问题,我们可以将a,b,c视为操作数由给定表定义的乘法(x)提供规则。

上面的方法有意义吗?还是有一个更简单的方法?

algorithm dynamic-programming boolean-expression parentheses

6
推荐指数
1
解决办法
7696
查看次数

减少布尔表达式

我有一个表达,假设,

a = 1 && (b = 1 || b != 0 ) && (c >= 35 || d != 5) && (c >= 38 || d = 6)
Run Code Online (Sandbox Code Playgroud)

我希望它减少到,

a = 1 && b != 0 && (c >= 38 || d = 6)
Run Code Online (Sandbox Code Playgroud)

有没有人有什么建议?指向任何算法的指针?

Nota Bene:我相信Karnaugh Map或Quine-McCluskey不是一个选择.由于这些方法不处理灰色案例.我的意思是,表达只能减少,就像A或A'或任何东西,或说黑色或白色或缺乏颜色.但是在这里,我有灰色阴影,正如大家们所看到的那样.

解决方案:我已经在Clojure中为此编写了程序.我使用了包含函数值的地图.这非常方便,只是几个组合的一些规则,你很好.谢谢你的有用答案.

language-agnostic boolean-expression constraint-programming reduction boolean-operations

6
推荐指数
1
解决办法
741
查看次数

当R中只有一个参数时,为什么逻辑运算符会否定它们的参数?

当只将一个向量传递给逻辑和/或运算符时,运算符否定参数:

> x = c(F,T,T)
> `&`(x)
[1]  TRUE FALSE FALSE

> `|`(x)
[1]  TRUE FALSE FALSE
Run Code Online (Sandbox Code Playgroud)

要使逻辑运算符作为幂等运算,需要传递单个元素向量作为第二个参数:

> `&`(x,T)
[1] FALSE  TRUE  TRUE

> `|`(x,F)
[1] FALSE  TRUE  TRUE
Run Code Online (Sandbox Code Playgroud)

当只有一个参数传递时,为什么逻辑运算符会否定它们的参数?

r boolean-expression

6
推荐指数
1
解决办法
98
查看次数

我怎么说不是,不是

我不想说:

(trsaz != v1) && (trsaz != v2) && ...
Run Code Online (Sandbox Code Playgroud)

我想要的东西:

trsaz != (v1, v4, v7, v11)
Run Code Online (Sandbox Code Playgroud)

这是可能的还是还有别的东西!=.

c# boolean-expression

5
推荐指数
1
解决办法
138
查看次数

(null!= x)和(x!= null)之间有什么区别吗?

我正在观看一个java编程视频教程,它提到:

if(null != x){
}
Run Code Online (Sandbox Code Playgroud)

如上所述使用它是一个好习惯吗?

它有什么不同于:

if(x != null){
}
Run Code Online (Sandbox Code Playgroud)

java if-statement boolean-expression

5
推荐指数
1
解决办法
2308
查看次数

检测卡诺图中的异或

我得到了以下卡诺图,但在计算每个表中的 XOR 表达式时仍然遇到问题。

                Table 1
                -------
                  WZ
         00    01   11   10
       -----------------------
    00 |     |    |    |  1  |
       -----------------------
    01 |  1  |    |    |     |
       -----------------------
XY  11 |     |    |    |  1  |
       -----------------------
    10 |  1  |    |    |     |
       -----------------------


                Table 2 
                -------
                   WZ
         00     01   11   10
       -----------------------
    00 |     |  1  |     |   |
       -----------------------
    01 |     |     |  1  |   |
       -----------------------
XY  11 |     |  1  |     |   |
       -----------------------
    10 …
Run Code Online (Sandbox Code Playgroud)

xor boolean-expression karnaugh-map

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

使用逻辑(布尔)表达式对 Pandas Dataframe 进行切片

当我尝试使用逻辑表达式对 Pandas 数据框进行切片时,出现异常。

我的数据具有以下形式:

df
    GDP_norm    SP500_Index_deflated_norm
Year        
1980    2.121190    0.769400
1981    2.176224    0.843933
1982    2.134638    0.700833
1983    2.233525    0.829402
1984    2.395658    0.923654
1985    2.497204    0.922986
1986    2.584896    1.09770

df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 38 entries, 1980 to 2017
Data columns (total 2 columns):
GDP_norm                     38 non-null float64
SP500_Index_deflated_norm    38 non-null float64
dtypes: float64(2)
memory usage: 912.0 bytes
Run Code Online (Sandbox Code Playgroud)

命令如下:

df[((df['GDP_norm'] >=3.5 & df['GDP_norm'] <= 4.5) & (df['SP500_Index_deflated_norm'] > 3)) | (

   (df['GDP_norm'] >= 4.0 & df['GDP_norm'] <= 5.0) & (df['SP500_Index_deflated_norm'] < …
Run Code Online (Sandbox Code Playgroud)

python boolean-expression slice logical-operators pandas

5
推荐指数
1
解决办法
7734
查看次数