首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过替换方括号重新排列布尔表达式

通过替换方括号重新排列布尔表达式
EN

Stack Overflow用户
提问于 2020-01-13 20:18:20
回答 1查看 138关注 0票数 0

我试着在线检查是否有与1. (A和B)或C等价的表达式,方法是删除括号并重新排列上面表达式中的操作数和布尔运算符。

例如2. (A或B)和C =A和C或B和C。

如果我尝试用与上面相同的逻辑来求解第一个表达式,它似乎在逻辑上是不等价的,即A或C和B或C。我想删除表达式中的括号。这是我的主要目标

EN

回答 1

Stack Overflow用户

发布于 2020-01-14 16:50:20

你说的“去掉括号”是什么意思?

当你写的时候

(A或B) AND C=A和C或B和C

"A和C或B和C“是什么意思?

这是不是意味着

A与(C或B)和C

(A和C)或(B和C)

可能是后者,但这只是因为您在和表达式中看到了隐式括号。

人们通常认为"AND“比"OR”具有更高的优先级(编程语言中的优先级)。如"ד比"+”具有更高的优先级。和

a×b+c

在解释方面通常不会模棱两可。

"ד可以分布在一个和上,这是真的,而反之亦然。

但是在布尔代数中没有这样的东西,并且" and“和"OR”具有相似的性质。它们具有相同的分布性。

所以如果你的问题是

“我们可以在"AND”表达式上分配"OR“吗?”,

答案是肯定的。

(A和B)或C= (A或C) AND (B或C)

(只要考虑一下当C=0和当C=1时会发生什么,以验证它是真的)

如果你的问题是

“这样的表达式是否可以用和表达式隐式地用括号括起来的规则来表示而不用括号?”,

答案也是肯定的。只需写

A和B或C

使用优先级规则,它被解释为

(A和B)或C

您还可以编写

A.B+C

更清楚地说,“与”通常被认为等同于"ד,而”或“则等同于"+”。

在像C这样的编程语言中,当一个人写下

A & B | C

它被清楚地解释为

(A & B) | C

同样的道理也适用于

A && B || C

因此,使用“隐式括号和表达式”规则,您可以编写

A与B或C= (A或C)与(B或C)

(A或B) AND C=A和C或B和C

请注意,在这两种情况下,您都需要在等号的一侧使用括号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59716536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档