правила deMorgan объяснил

пожалуйста правила deMorgan как можно проще (например, для кого-то только со средним школьным математическим образованием) ?

8 ответов


у нас есть два значения: T и F.

мы можем объединить эти значения тремя способами:NOT, AND и OR.

NOT простейший:

  • NOT T = F
  • NOT F = T

мы можем написать это как таблица истинности:

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

для краткости

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

думать NOT как дополнение, то есть, это получается одно значение в другое.

AND работает на двух значениях:

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

AND и T только когда оба ее аргументы (значения x и y в таблице истинности) являются T и F иначе.

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), мы можем заполнить остальные таблицы.

до оценить комбинация, оценивает части и работает вверх от там. Скобки показывают, какие части следует оценить в первую очередь. Что вы знаете из обычной арифметики поможет Вам разобраться. Скажите, что у вас есть 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 и z (2 возможных значений x умножить на 2 возможных значения y умножить на 2 возможных значения z) для получения

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.

правила деморгана-удобные трюки, которые позволяют конвертировать между эквивалентными выражениями это соответствует определенным шаблонам:

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

(вы можете подумать об этом какNOT распространяет через простой AND и OR выражения.)

ваш здравый смысл, вероятно, уже понимает эти правила! Например, вспомните народную мудрость: "нельзя быть в двух местах одновременно.- Мы могли бы сделать так, чтобы это соответствовало первой части первого правила:--57-->

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) и (NOT x) AND (NOT y) эквивалентны.


просматривая некоторые ответы, я думаю, что могу объяснить это лучше, используя условия, которые на самом деле связаны друг с другом.

закон деморгана относится к тому факту, что есть два одинаковых способа написать любую комбинацию двух условий - в частности,AND комбинация (оба условия должны быть истинными) и OR комбинация (любая из них может быть истинной). Примеры:

часть 1 деморгана Закон!--19-->

о себе: у Алисы есть брат.
условия: у Алисы есть брат OR У Алисы есть сестра.
противоположную: Алиса-единственный ребенок (делает NOT у брата).
условия: Элис NOT есть брат, AND Она NOT есть сестра.

другими словами: NOT [A OR B] = [NOT A] AND [NOT B]

часть 2 деморгана Закон!--19-->

о себе: Боб-водитель автомобиля.
условия: у Боба есть машина AND У Боба есть лицензия.
противоположную: Боб NOT водителем автомобиля.
условия: Боб NOT автомобиль, OR Боб NOT иметь лицензию.

другими словами: NOT [A AND B] = [NOT A] OR [NOT B].

я думаю, что это было бы немного менее запутанным для 12-летнего. Это, конечно, меньше запутанный, чем вся эта ерунда о таблицах правды (даже я запутываюсь, глядя на все это).


Это просто способ переформулировать утверждения истины, которые могут обеспечить более простые способы написания условных условий для того же самого.

на простом английском языке:
Когда что-то не то или это, это также не то и не то.
Когда что-то не то и не это, это также не то или не то.

Примечание: учитывая неточность английского языка на слове " или " я использую его для обозначения неисключительного или в предыдущий пример.

например, следующий псевдо-код эквивалентен:
Если нет (A или B)...
ЕСЛИ (НЕ A) И (НЕ B)....

ЕСЛИ НЕТ(A И B)...
ЕСЛИ НЕТ (А) ИЛИ НЕТ (B)...


Если вы полицейский, ищущий несовершеннолетних пьяниц, вы можете сделать одно из следующих, и закон де Моргана говорит, что они составляют то же самое:

ФОРМУЛИРОВКА 1 (A И B)

Если они под возраст ограничить и пить алкогольными напиток, арестуйте их.

ФОРМУЛИРОВКА 2(НЕ (НЕ A ИЛИ НЕ B)))

Если они над возрастное ограничение или употребление безалкогольные напиток, отпустите их.

Это, кстати, не мой пример. Насколько я знаю, это было частью научного эксперимента, где одно и то же правило выражалось по-разному, чтобы выяснить, насколько сильно оно повлияло на способность людей понимать их.


нарисуйте простую диаграмму Венна, две пересекающиеся окружности. Положите A слева и B справа. Теперь (A и B), очевидно, является пересекающимся битом. Таким образом, NOT(A и B) - это все, что не находится в пересекающемся бите, остальная часть обоих кругов. Цвет, который в.

нарисуйте еще два круга, как раньше, A и B, пересекающиеся. Теперь не (A) - это все, что находится в правом круге (B), но не пересечение, потому что это, очевидно, A, а также B. цвет это В. Аналогично не(B) все в левом круге, но не пересечение, потому что это B, а также A. цвет это В.

два рисунка выглядят одинаково. Вы доказали, что NOT(A и B) = NOT(A) или NOT (B). Другой случай остается в качестве упражнения для ученика.


закон деморгана позволяет по-разному формулировать последовательность логических операций. Это относится к логике и теории множеств, где в теории множеств вы используете дополнение для не пересечения и и Союз или.

закон деморгана позволяет упростить логическое выражение, выполняя операцию, которая довольно похожа на распределительное свойство умножения.

Итак, если у вас есть следующее на C-подобном языке

if !(x || y || z) { /* do something */ }

Это логически эквивалентно:

if (!x && !y && !z)

Он также работает так:

if !(x && !y && z)

превращается в

if (!x || y || !z)

и вы можете, конечно, пойти в обратном направлении.

эквивалентность этих утверждений легко убедиться, используя то, что называется таблицей истинности. В таблице истинности вы просто выкладываете свои переменные (x, y, z) и перечисляете все комбинации входных данных для этих переменных. Затем у вас есть столбцы для каждого предиката или логического выражения, и вы определяете для учитывая входные данные, значение выражения. Любая университетская программа по информатике, вычислительной технике или электротехнике, скорее всего, сведет вас с ума количеством и размером таблиц истины, которые вы должны построить.

так зачем их учить? Я думаю, что самая большая причина в вычислениях заключается в том, что она может улучшить читаемость больших логических выражений. Некоторые люди не любят использовать logical not ! перед выражениями, так как они думают, что это может запутать кого-то, если они пропустят он. Влияние использования закона деморгана на уровень кристаллов полезно, однако, потому что некоторые типы кристаллов быстрее, дешевле, или вы уже используете для них целую интегральную схему, чтобы вы могли уменьшить количество пакетов чипов, необходимых для результата.


Не уверен, почему я сохранил это все эти годы, но он оказался полезным в ряде случаев. Спасибо мистеру Бейли, моему учителю математики 10 класса. Он назвал это теоремой деморгана.

!(A || B) <==> (!A && !B)
!(A && B) <==> (!A || !B)

при перемещении отрицания в скобках или из скобок изменяется логический оператор (AND, OR).