问题标签 [demorgans-law]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1965 浏览

c - 使用德摩根定律在 C 中编写表达式

我很难理解德摩根定律,以及它与布尔逻辑和表达式的关系。专门重写等效表达式,使用布尔逻辑和 &&、|| 和 ! 运营商。

所以我知道在 C 编程中,De Morgans Law 是一种以不同方式重新陈述表达式(使用 NOT、OR、AND)同时保持等价的方法。

如:

也等于:

和:

也等于:

(我们只是在这里将括号乘以一元否定 NOT 运算符吗?就像在良好的 ole' 代数时代一样?)

当我评估一个更棘手的表达式以及如何用布尔逻辑重新编写它时,我的大脑开始煎熬。我在一些帮助下搜索了任何过去的线程,但仍然无法解决这个问题。我开始写真值表,但不知道如何根据下面的表达式来制作真值表。我正在尽我所能,所以请原谅任何错误或不良做法。

(请注意,以下代码在技术上不是完整的 C 代码,只是我尝试使用布尔逻辑编写的表达式示例,以合并到 C 代码中。)

我无法将它合并到我的任何 C 程序中,因为我无法得到它。

例如:

本质上说(NOT之前的真值形式):

表示 A 大于 12,并且 b 大于或等于 3。

把它带到一个真值表:

现在应用 NOT 运算符:(这是我开始迷路的地方)

并使用德摩根定律写(尝试)等价物:所以……</p>

相当于

(有没有办法在真值表中交叉比较它们,看看它们是否真的等价?)

另一个,这次有点棘手……

相当于:

最后

相当于:

我不确定这些是否正确,但我认为最好的办法是停止阅读它并继续尝试。

0 投票
4 回答
414 浏览

java - 如何使用 De Morgans law java 重构 if 语句

所以我有一个非常不可读的 if 语句,有人建议我查看 De Morgans 定律并对其进行重构,以使其更加清晰易读。我知道如何用简单而简短的语句来做到这一点,但我真的不知道如何重构我的代码。请注意,前两个是对象!谢谢你的帮助!

0 投票
1 回答
809 浏览

coq - Coq 中量词的德摩根定律

我试图证明一些 FOL 等价。我在使用德摩根定律作为量词时遇到了麻烦,特别是

~ (exists x. P(x)) <-> forall x. ~P(x)

我尝试从 Coq.Logic.Classical_Pred_Type. 应用 not_ex_all_not,并搜索 StackOverflow(Coq 将不存在转换为 forall 语句将 ~exists 转换为假设中的 forall),但都没有接近解决问题。

我收到此错误:

我希望德摩根定律适用于导致否定存在主义的目标。

0 投票
2 回答
321 浏览

java - !(~A && ~B) 在编程中比 (A||B) 好吗?

我正在开发JavaIntelliJ用作我的 IDE。我写了if如下声明。

IntelliJ建议进行转换 ( DeMorgan's Law) 并将其转换为:

因此,它应用了一种非常常见的离散数学理论来简化布尔表达式。我想知道的是这如何优化任何东西?

||如果第一部分本身为真,则运算符无论如何都不会执行整个条件,并且仅在第一部分为假时才执行 RHS。

转化条件有效吗?如何?

0 投票
1 回答
440 浏览

assembly - 如何用 AND 重写(P 或 Q)

我正在尝试用汇编语言编写 XOR 操作,但我们被允许使用的唯一操作是 AND 和 NOT,而不是 OR,绝对不是 XOR。我在网上到处找,似乎找不到答案。我知道:XOR = (P or Q) and ~(P and Q) 但我需要用 AND 操作重写(P or Q) 。这可能吗?

0 投票
1 回答
54 浏览

demorgans-law - DeMorgans Law 无法简化布尔表达式

有一个布尔表达式(A+B)(AB)'。与此初始值相比,答案的真值表具有类似于 XOR 门之一的匹配组合。我想知道是否有一个身份,或者是否可以将完成的答案进一步简化为类似于 XOR 门的东西。我的锻炼如下

我不确定这是否完全简化,或者是否有其他路径可以给出正确答案。(最初转换为电路将有 4 个门,而“简化”版本将有 5 个,除非我数错了)

先感谢您

0 投票
1 回答
229 浏览

c++ - 否定和德摩根定律不是 C++20 部分约束的一部分

按约束进行偏序的规则是指 AND 和 OR,但不指 NOT:

这些规则基于原子约束约束规范化的定义:

否定(即!E1)特别不处理。

因此,以下代码正确使用了部分排序:

虽然此代码因模棱两可而失败:

代码:https ://godbolt.org/z/RYjqr2


以上导致德摩根定律不适用于概念:

不等于:

第一个将参与偏序,而后者则不会。

代码:https ://godbolt.org/z/aRhmyy


Was the decision, not to handle negation as part of constraint normalization, taken in order to ease the implementation for compiler vendors? or is there a logical flaw with trying to support it?

0 投票
1 回答
517 浏览

ruby-on-rails - Ruby 除非有条件的 || 操作员

除非条件与 || 一起使用,否则我对 Ruby 如何使用感到困惑。操作员。

所以我基本上得到的是:

目前,第一部分评估为假,第二部分评估为真。而且我没有收到错误,它可以满足我的要求。但是,如果我只写:

我收到一个错误,当我写时我收到一个错误:

所以我的问题。如果第一部分评估为假,它会缩短并通过代码块,而不是看另一边吗?如果是这样,为什么留下第二部分会引发错误?这一切如何运作?

抱歉,如果您需要代码,我觉得这是一个逻辑/代数解决方案。

0 投票
0 回答
152 浏览

sql - De Morgan 定律如何在条件 SQL 查询中起作用?

背景:当我遇到这个问题时,我正在stratascratch.com上练习一些SQL问题:

SQL 中的德摩根定律

https://platform.stratascratch.com/coding-question?id=9648&python=

提示说“起草意味着pickround值(int64类型)不是NULL0。根据我的理解,这意味着pickround值必须是NOT NULL OR NOT 0,这是问题的标准解决方案。因此,根据德摩根定律,这意味着等价表达式是NOT (NULL AND 0)。但是,我在那里写的代码pickroundNULL OR 0,这与指定的问题相反,但我的代码仍然是正确的,如绿色的“已解决”刻度线所示。

我的问题是:我误解了 SQL 语法还是误解了逻辑?

0 投票
0 回答
16 浏览

set - 集合的并集和交集

假设我有两组:a 和 b 我想使用联合和交叉来表示 a。所以我知道 (a union b) \ b = a 但是 (a union b) intersection b 补码 = a 吗?因为在我看来它应该等于(a 交集 b 补码)。我很难弄清楚哪种是正确的思考方式。