为什么 + 号通常用作逻辑 OR 运算符?

电器工程 数字逻辑 逻辑门 布尔代数
2022-01-13 04:27:45

几天前有人问我,为什么在数字逻辑中使用+代替v符号作为布尔 OR 运算符很常见。

他的论点是,使用+OR 是完全违反直觉的,因为从一般用法/上下文中它更有可能被解释为 AND。

来自 Wiki:在逻辑和数学中,or是真值泛函运算符,也称为(包含)析取和交替。表示此运算符的逻辑连接词也称为“或”,通常写为vor +

我做了一些研究并想出了这个v标志的起源。它来自拉丁词“vel”,意思是“或”。

加起来令人困惑的一件事是,+从历史的角度来看,这意味着“和”。根据这个这个,它是在 1360 年左右发明的,是拉丁语“et”(“和”)的缩写,类似于加号。

但是,我不知道谁提出了+布尔代数以及为什么它似乎比v数字逻辑/工程环境更受欢迎。

4个回答

一个词:分配

乘法分配到加法上,逻辑 AND 分配到逻辑 OR 上也是如此。

另一方面,乘法通常在没有符号(2a而不是2*a)的情况下使用,逻辑与非常相似。如果 A 和 B 都必须为真,那么写 AB 就简单直观了。

在构建真值表和基于它们的算法方面非常方便。

$$f = A + BC$$

即使是没有经验的人,乍一看也会注意到,这f可能发生在 A 为真或 BC 都为真时。

与 $$f = A \vee B \wedge C$$ 进行比较 如果您几天不使用它,您将不得不再次怀疑,是vOR 和^AND,反之亦然?即使你没有忘记它们,如果你只使用乘法和加法符号,它也会更清晰、更容易阅读,特别是因为它们不会混淆。在布尔逻辑中没有加法或乘法,因此它们的符号可以重复使用。

在布尔代数中,我们选择表示真和1 * 0 = 0表示假这一事实也有助于识别哪个运算符是哪个运算符。数学中的符号就是:符号。它们之所以有意义,是因为我们给它们赋予了意义,所以我们最好选择易于记忆的符号,并且它们在其他领域的用法相似。1 + 0 = 110

我一直用于逻辑 AND 和 OR 符号的一条推理是它们与它们所代表的数学运算的关系。

让我们从逻辑 AND 开始。它通常表示为乘号,例如 *。因此,如果您有一个像 s1*s2*s3*s4.... 这样的长表达式,并且其中一个变量的值为 0 或逻辑假,那么整个表达式将采用 0 的值,这对于乘法来说是很正常的, 因为 1*1*0*1... 等于 0。

另一方面,当我们使用 + 号(通常代表加法来表示逻辑或)时,我们有类似的情况。如果我们有几个变量是 ORed,那么我们再次遇到 s1+s2+s3+s4 的情况......如果只有一个变量不为零,那么结果也将不为零,即当我们将 OR 与加法进行比较时,逻辑(恕我直言)。例如 0+0+1+0... 等于 1。这个中断的一点是我们有更多的,结果仍然只有一个。我为此使用的一种思维方式是记住一个代表存在,所以某物存在并且你添加更多的存在给它,它仍然存在。

Michael Shcroeder 的“布尔代数符号的简史”,Nordic Journal of Philosophical Logic 2 (1):41-62 (1997),在莱布尼茨的“Elementa Calculi”中将 + 用于表示包容性或讨论布尔对符号的使用,以及其他一些符号。在线链接

如果不注意打印机传输代码(例如 Baudot、ITA 和 ASCII)提供了字母、数字和“常见的商业符号”,那么关于为什么使用 + 而不是 ∪、∩、∨、∧ 的讨论是不完整的'。

现在很难想象,但曾经有一段时间特殊符号在输入时不容易表示,即使在排版时也表示额外的成本。

出于这个原因,数学家(和其他 Algol 支持者)想要一个更大的符号集,但 50 年前,你甚至无法表达更大的问题,除非写下“为什么我们不使用倒 v 符号来代替写作.AND。