У меня проблемы с применением закона Де Моргана ... Обратная связь? - PullRequest
4 голосов
/ 24 марта 2011

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

Допустим, x = 7 и y = 5. Применяя закон де Моргана, выберите ниже логическое выражение, которое эквивалентно следующему логическому выражению: !(x>5)||!(y>7)

(а) !(x>5)&&!(y>7)

(б) !((x>5)||(y>7))

(с) !(x>5)&&(y>7)

(д) (x>5)||!(y>7)

(e) Ничего из перечисленного

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

Как я понимаю, это то, что вы можете объединить два ! в один, поставив его перед целым утверждением, изменив:

!(a)||!(b)

до

!((a)||(b))

Ответы [ 6 ]

6 голосов
/ 24 марта 2011

Согласно Википедии , закон де Моргана (который для меня был просто вещью, которую я знал) равен

НЕ (P И Q) = (НЕ P) ИЛИ (НЕ Q)

В вашем вопросе P отображается на (x>5), а Q отображается на (y>7). Поэтому !((x>5)&&(y>7)) ваш ответ. Но у вас нет такого в вашем списке. (Ваш учитель небрежен, если это ваш реальный вопрос, поскольку только один предложенный ответ имеет двойные круглые скобки, что является огромной подсказкой - вы можете исключить b, потому что он все еще использует ||, и исключить других из-за отсутствия двойного раунда скобки, идущие прямо к е.)

Если вы действительно не можете заставить эти вещи стоять на месте, используйте примеры значений, приведенные в вопросе. (Если необходимо, составьте немного.) x>5 верно для x = 7. y>7 неверно для y = 5. так что у вас есть !true || !false, то есть false || true, что true. Оцените каждое из возможных выражений и исключите те, которые не дают одинакового ответа. Если вы все еще потеряны, выберите другие значения выборки и повторите. Один из возможных ответов будет соответствовать, или нет, поэтому вы ответите «ни один из вышеперечисленных». Это принесет вам пользу, даже если вы на самом деле не понимаете, почему.

А почему, это из-за противоположного поведения && и ||. Единственный способ получить истинное значение из && - использовать true с обеих сторон. Единственный способ получить ложное значение из || - ложь с обеих сторон. Если вы измените параметры с помощью !, вы можете переключить оператор и получить противоположный результат.

3 голосов
/ 24 марта 2011

Вот, посмотрите закон де Моргана: up http://en.wikipedia.org/wiki/De_Morgan's_laws! Это не так, как вы описали, но

NOT (P AND Q) = (NOT P) OR  (NOT Q)
NOT (P OR Q)  = (NOT P) AND (NOT Q)

Обратите внимание, что AND становится ИЛИ. Также как OR становится AND. Отрицание (НЕ) входит в аргументы.

Следовательно, для !(x>5) || !(y>7) применяется первое правило, которое совпадает с правым: P для (x>5) и Q для (y>7). Сначала измените оператор с || (ИЛИ) на && (И), затем, но перед ! (НЕ). Результат

!(x>5) || !(y>7)   =   !((x>5) && (y>7))

, который выглядит точно так же, как c, если были круглые скобки, или просто как b, если вместо & | был & &. Именно с этими вариантами ответ е.

2 голосов
/ 24 марта 2011

Нет, преобразование работает !(a)||!(b) -> !(a && b) - "и" вместо "или" в преобразованной версии.

Ваше выражение

!(x>5)||!(y>7)  ==  (x <= 5) || (y <= 7)

который я не думаю, соответствует любому из них.Я бы пошел на E.

1 голос
/ 24 марта 2011

Вы можете думать о Законе Деморгана как о переключающемся.

Пусть P, Q - предложения, а OP - элемент {AND, NOT}.Тогда выполняется следующее:

NOT (P OP Q) = (NOT P) (NOT OP) (NOT Q)

, где "NOT AND" обозначает ИЛИ и«НЕ ИЛИ» обозначает «И».Закон Деморгана просто переключает все истинные значения и операторы.

1 голос
/ 24 марта 2011

Применение законов де Моргана (их два, но симметричных) изменится:

! (X> 7) || ! (У> 5)

в:

! ((X> 7) && (y> 5))

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

Вот самый простой способ, которым я знаю, обращаться с правилами Де Моргана. Предположим, у вас есть что-то вроде этого: ((A) OP (B)) где OP - это либо «или», либо «и». Убедитесь, что вы записали все скобки, даже если внешние лишние. Теперь отмените все скобки и переключите оператор "или" становится "и" и наоборот. Итак, что вы получите, это: ! (! (A) OTHER_OP! (B)) Теперь у вас обычно получается двойной негатив, который можно удалить. Но определение правильной структуры (три скобки и оператор сопоставления) является ключом.

1 голос
/ 24 марта 2011

Законы де Моргана гласят:

  1. ¬ (A или B) = ¬A и ¬B
  2. ¬ (A и B) = ¬A или ¬B

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

Этот пример может помочь прояснить мыслительный процесс.

Если я хочу что-то не красное или шарик,тогда то, что я ищу, не является ни красным, ни мячом.Однако, если я хочу что-то не красное и не шар, тогда я ищу объект, который не красный или не шар.

Таким образом, переделка выражения будет

! ((X> 5) && (y> 7))

Что не дано (e).

Однако, если x = 7 и y = 5, то (x> 5) но! (Y> 7), поэтому выражение! (X> 5) ||! (Y> 7) оценивается как true.Например, я хочу что-то, что не является красным (x> 5) или не шаром (y> 7), и мне дают красное ведро (false || true).

[EDIT] Я набираю слишком медленно.

...