问题标签 [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.
c - 使用德摩根定律在 C 中编写表达式
我很难理解德摩根定律,以及它与布尔逻辑和表达式的关系。专门重写等效表达式,使用布尔逻辑和 &&、|| 和 ! 运营商。
所以我知道在 C 编程中,De Morgans Law 是一种以不同方式重新陈述表达式(使用 NOT、OR、AND)同时保持等价的方法。
如:
也等于:
和:
也等于:
(我们只是在这里将括号乘以一元否定 NOT 运算符吗?就像在良好的 ole' 代数时代一样?)
当我评估一个更棘手的表达式以及如何用布尔逻辑重新编写它时,我的大脑开始煎熬。我在一些帮助下搜索了任何过去的线程,但仍然无法解决这个问题。我开始写真值表,但不知道如何根据下面的表达式来制作真值表。我正在尽我所能,所以请原谅任何错误或不良做法。
(请注意,以下代码在技术上不是完整的 C 代码,只是我尝试使用布尔逻辑编写的表达式示例,以合并到 C 代码中。)
我无法将它合并到我的任何 C 程序中,因为我无法得到它。
例如:
本质上说(NOT之前的真值形式):
表示 A 大于 12,并且 b 大于或等于 3。
把它带到一个真值表:
现在应用 NOT 运算符:(这是我开始迷路的地方)
并使用德摩根定律写(尝试)等价物:所以……</p>
相当于
(有没有办法在真值表中交叉比较它们,看看它们是否真的等价?)
另一个,这次有点棘手……
相当于:
最后
相当于:
我不确定这些是否正确,但我认为最好的办法是停止阅读它并继续尝试。
java - 如何使用 De Morgans law java 重构 if 语句
所以我有一个非常不可读的 if 语句,有人建议我查看 De Morgans 定律并对其进行重构,以使其更加清晰易读。我知道如何用简单而简短的语句来做到这一点,但我真的不知道如何重构我的代码。请注意,前两个是对象!谢谢你的帮助!
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),但都没有接近解决问题。
我收到此错误:
我希望德摩根定律适用于导致否定存在主义的目标。
java - !(~A && ~B) 在编程中比 (A||B) 好吗?
我正在开发Java
并IntelliJ
用作我的 IDE。我写了if
如下声明。
IntelliJ
建议进行转换 ( DeMorgan's Law
) 并将其转换为:
因此,它应用了一种非常常见的离散数学理论来简化布尔表达式。我想知道的是这如何优化任何东西?
||
如果第一部分本身为真,则运算符无论如何都不会执行整个条件,并且仅在第一部分为假时才执行 RHS。
转化条件有效吗?如何?
assembly - 如何用 AND 重写(P 或 Q)
我正在尝试用汇编语言编写 XOR 操作,但我们被允许使用的唯一操作是 AND 和 NOT,而不是 OR,绝对不是 XOR。我在网上到处找,似乎找不到答案。我知道:XOR = (P or Q) and ~(P and Q) 但我需要用 AND 操作重写(P or Q) 。这可能吗?
demorgans-law - DeMorgans Law 无法简化布尔表达式
有一个布尔表达式(A+B)(AB)'
。与此初始值相比,答案的真值表具有类似于 XOR 门之一的匹配组合。我想知道是否有一个身份,或者是否可以将完成的答案进一步简化为类似于 XOR 门的东西。我的锻炼如下
我不确定这是否完全简化,或者是否有其他路径可以给出正确答案。(最初转换为电路将有 4 个门,而“简化”版本将有 5 个,除非我数错了)
先感谢您
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?
ruby-on-rails - Ruby 除非有条件的 || 操作员
除非条件与 || 一起使用,否则我对 Ruby 如何使用感到困惑。操作员。
所以我基本上得到的是:
目前,第一部分评估为假,第二部分评估为真。而且我没有收到错误,它可以满足我的要求。但是,如果我只写:
我收到一个错误,当我写时我收到一个错误:
所以我的问题。如果第一部分评估为假,它会缩短并通过代码块,而不是看另一边吗?如果是这样,为什么留下第二部分会引发错误?这一切如何运作?
抱歉,如果您需要代码,我觉得这是一个逻辑/代数解决方案。
sql - De Morgan 定律如何在条件 SQL 查询中起作用?
背景:当我遇到这个问题时,我正在stratascratch.com上练习一些SQL问题:
https://platform.stratascratch.com/coding-question?id=9648&python=
提示说“起草意味着pickround
值(int64
类型)不是NULL
或0
。根据我的理解,这意味着pickround
值必须是NOT NULL
OR
NOT 0
,这是问题的标准解决方案。因此,根据德摩根定律,这意味着等价表达式是NOT (NULL AND 0)
。但是,我在那里写的代码pickround
是NULL OR 0
,这与指定的问题相反,但我的代码仍然是正确的,如绿色的“已解决”刻度线所示。
我的问题是:我误解了 SQL 语法还是误解了逻辑?
set - 集合的并集和交集
假设我有两组:a 和 b 我想使用联合和交叉来表示 a。所以我知道 (a union b) \ b = a 但是 (a union b) intersection b 补码 = a 吗?因为在我看来它应该等于(a 交集 b 补码)。我很难弄清楚哪种是正确的思考方式。