德摩根规则解释

2024-02-18

你能解释一下吗德摩根规则 https://en.wikipedia.org/wiki/De_Morgan%27s_laws尽可能简单(例如对于只有中学数学背景的人)?


布尔代数概述

我们有两个价值观:T and F.

我们可以通过三种方式组合这些值:NOT, AND, and OR.

NOT

NOT最简单的是:

  • NOT T = F
  • NOT F = T

我们可以将其写为真值表:

when given.. | results in...
============================
           T | F
           F | T

为了简洁

x | NOT x
=========
T | F
F | T

考虑到NOT as the 补充,也就是说,它将一个值转换为另一个值。

AND

AND适用于两个值:

x y | x AND y
=============
T T | T
T F | F
F T | F
F F | F

AND is T仅当两者都论点(值x and y在真值表中)是T — and F否则。

OR

OR is T当它的至少一个参数是T:

x y | x OR y
=============
T T | T
T F | T
F T | T
F F | F

组合

我们可以定义更复杂的组合。例如,我们可以写一个真值表x AND (y OR z),第一行在下面。

x y z | x AND (y OR z)
======================
T T T | ?

一旦我们知道如何评估x AND (y OR z),我们可以填写表格的其余部分。

To evaluate组合,评估各个部分并从那里开始工作。括号显示首先评估哪些部分。你从普通算术中学到的知识将帮助你解决这个问题。说你有10 - (3 + 5)。首先评估括号中的部分以获得

10 - 8

并像往常一样评估以获得答案,2.

评估这些表达式工作原理类似。我们知道如何OR从上面开始工作,所以我们可以稍微扩展我们的表:

x y z | y OR z | x AND (y OR z)
===============================
T T T | T      | ?

现在我们几乎就像回到了x AND y桌子。我们只需将值替换为y OR z并评估。在第一行,我们有

T AND (T OR T)

这与以下相同

T AND T

这就是简单的T.

我们对所有 8 个可能的值重复相同的过程x, y, and z(2 个可能的值x乘以 2 的可能值y乘以 2 的可能值z) to get

x y z | y OR z | x AND (y OR z)
===============================
T T T | T      | T
T T F | T      | T
T F T | T      | T
T F F | F      | F
F T T | T      | F
F T F | T      | F
F F T | T      | F
F F F | F      | F

有些表达式可能比需要的更复杂。例如,

x | NOT (NOT x)
===============
T | T
F | F

换句话说,NOT (NOT x) is 相等的只是x.

德摩根规则

DeMorgan 的规则是方便的技巧,让我们可以在适合某些模式的等效表达式之间进行转换:

  • NOT (x AND y) = (NOT x) OR (NOT y)
  • NOT (x OR y) = (NOT x) AND (NOT y)

(你可能会认为这是如何NOT通过简单的分布AND and OR表达式。)

你的常识可能已经明白这些规则了!例如,想一想“你不能同时出现在两个地方”这样的民间智慧。我们可以使它符合第一条规则的第一部分:

NOT (here AND there)

应用该规则,这就是“你不在这里或你不在那里”的另一种说法。

锻炼:你如何用简单的英语表达第二条规则?

对于第一条规则,让我们看一下等号左侧表达式的真值表。

x y | x AND y | NOT (x AND y)
=============================
T T | T       | F
T F | F       | T
F T | F       | T
F F | F       | T

现在是右侧:

x y | NOT X | NOT Y | (NOT x) or (NOT y)
========================================
T T | F     | F     | F
T F | F     | T     | T
F T | T     | F     | T
F F | T     | T     | T

两个表中的最终值相同。这证明了表达式是等价的。

锻炼:证明表达式NOT (x OR y) and (NOT x) AND (NOT y)是等价的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

德摩根规则解释 的相关文章

  • 将 IP 地址与 IP 范围匹配?

    我有一个 MySQL 表设置如下 Field Type Null Key Default Extra ipaddress s varchar 15 YES MUL NULL ipaddress e varchar 16 YES NULL
  • 柯里化和部分应用有什么区别?

    我经常在互联网上看到各种抱怨 认为其他人的柯里化示例不是柯里化 而实际上只是部分应用 我还没有找到关于什么是部分应用或者它与柯里化有何不同的合理解释 似乎存在普遍的混乱 等效的示例在某些地方被描述为柯里化 而在其他地方则被描述为部分应用 有
  • 如何定义软件的版本号?

    确定软件或组件应使用的版本号的最佳方法是什么 设置版本号有通用规则吗 我很确定这是一个基本问题 但搜索一段时间后我没有找到任何有用的东西 微软有一个约定 major minor revision build 或关注Jeff 的版本控制系统
  • 仅具有副作用的方法的名称

    因此 改变其对象的方法是mutator 不改变其对象但返回值 或对值的引用 的方法是getter 是否有一个广泛使用的方法名称 该方法不会改变其对象 不返回值 但可能会改变作为参数传递给它的对象 也就是说 只有每个方法对参数有副作用时才会被
  • 为什么“try”是一个明确的关键字?

    在我所知道的所有异常感知语言 C Java C Python Delphi Pascal PHP 中 捕获异常需要显式try块后跟catch块 我经常想知道其技术原因是什么 为什么我们不能直接追加catch普通代码块的子句 作为一个C 的例
  • 计算非图的所有可能突变[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我需要根据非常具体的配方构建一个非图解算器 对于每一行 我需要计算所有可能的突变 然后检查该行是否仍然使谜题有效 对于那些不知道非图的人 这
  • 访客模式的实际优势是什么?有哪些替代方案?

    我读了很多关于访客模式及其假定优势的内容 然而对我来说 在实践中应用它们似乎并没有那么大的优势 方便 和 优雅 似乎意味着大量的样板代码 因此 代码很难遵循 另外 接受 访问 的描述性并不强 如果您的编程语言没有方法重载 即 Vala 那么
  • 我在哪里可以学习编写词法分析器的基础知识?

    我想学习如何编写词法分析器 我的大学课程有一项作业 我们必须编写一个解析器 以及与之配套的词法分析器 但这是给我们的 没有任何指导或反馈 超出了标准 所以我并没有真正从中学到很多东西 搜索这个主题后 我只能找到相当高级的文章 这些文章重点关
  • 什么时候函数名太长?

    在可能的情况下 我尝试对我的函数名称进行描述 这有时会导致函数名称在二十到三十个字符范围内 例如GetActionFromTypeName or GetSelectedActionType 在什么时候函数会变得太长而难以管理 对于编译器来说
  • 为什么要使用继承? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Google 文件系统中的块大小问题

    谷歌文件系统论文 http labs google com papers gfs html 块大小是关键设计之一 参数 我们选择了64MB 这比典型文件大得多 系统块大小 每个块 副本存储为普通 Linux 文件放在 chunkserver
  • 如何检查一个盒子是否适合另一个盒子(允许任何旋转)

    假设我有两个盒子 每个盒子都是一个长方体 http en wikipedia org wiki Rectangular cuboid aka长方体 我需要编写一个函数来决定盒子是否具有尺寸 一 二 三 可以装入具有尺寸的盒子中 甲 乙 丙
  • 在二维平面中找到距离 P 点最近的 K 个点

    资料来源 亚马逊面试问题 解决方案1制作大小为 K 的堆并按最小距离收集点O NLogK 复杂 解决方案2 取大小为 N 的数组并按距离排序 应该使用QuickSort 霍尔修改 取前 K 点作为答案 这太复杂了 NlogN 但可以优化到近
  • 如何为抽象工厂创建的类设置特定属性?

    是否可以让具体工厂使用抽象工厂模式为其创建具有特定类型参数的具体类 或者由各自的具体工厂创建的不同具体类是否需要具有相同的字段 例如 在下图中 您将如何使用客户端 应用程序 给出的不同参数集来实例化 WinButton 和 OSXButto
  • 类是否应该有静态和非静态成员

    我试图找出一个类何时适合同时具有静态和非静态函数 又名 obj new ClassA obj gt doOOPStuff something ClassA doStaticStuff Note This example is done in
  • 以任意顺序匹配可选捕获组

    在解析用户输入的许多情况下 用户有机会向输入添加几个可选标志 这些标志应该以任何顺序接受 如何使用正则表达式对其进行解析 以便每个标志都位于它自己的捕获组中 如果存在 例如 有一个必需的令牌a 然后是 3 个可选标记 可以按任何顺序出现b
  • “此应用程序已请求运行时以异常方式终止它”的原因是什么?

    Visual C 运行时抛出一个常见错误 此应用程序已请求运行时以异常方式终止它 请联系应用程序的支持团队以获取更多信息 该错误消息实际上是什么意思mean 让我用一个比喻来准确地解释我的问题 如果我看到一条消息 异常 访问冲突 0xc00
  • 验证假名输入

    我正在开发一个允许用户输入日语字符的应用程序 我试图想出一种方法来确定用户的输入是否是日语假名 平假名 片假名或汉字 应用程序中的某些字段不适合输入拉丁文文本 我需要一种方法将某些字段限制为仅限汉字或仅限片假名等 该项目使用UTF 8编码
  • 负整数的基数排序

    我正在尝试对整数 包括负整数 实现基数排序 对于非负整数 我计划为数字0 9创建一个10个队列的队列 并实现LSD算法 但我对负整数有点困惑 我现在的想法是继续为它们创建另一个包含 10 个队列的队列 并分别对它们进行排序 然后在最后 我将
  • 在数字集合中查找最接近的匹配[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的

随机推荐