explication des règles de deMorgan

pourriez-vous s'il vous plaît expliquer le deMorgan règles aussi simplement que possible (par exemple pour quelqu'un qui n'a que des connaissances secondaires en mathématiques) ?

17
demandé sur Stephen C 2010-01-30 19:50:08

8 réponses

Nous avons deux valeurs: T et F.

On peut combiner ces valeurs de trois façons: NOT,AND et OR.

NOT est le plus simple:

  • NOT T = F
  • NOT F = T

nous pouvons écrire ceci comme un table de vérité:

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

Pour la concision

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

pensez à NOTcomplément, qui est, elle se tourne une valeur dans l'autre.

AND fonctionne sur deux valeurs:

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

ANDT seulement lorsque son arguments (les valeurs de x et y dans la table de vérité) sont T et F autrement.

ORT quand au moins l'un de ses arguments est T:

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

nous pouvons définir des combinaisons plus complexes. Par exemple, nous pouvons écrire une table de vérité pour x AND (y OR z), et la le premier rang est en dessous.

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

une Fois que nous savons comment évaluer x AND (y OR z), nous pouvons remplir le reste de la table.

évaluer la combinaison, évaluer les pièces et travailler à partir de là. Les parenthèses indiquent les parties à évaluer en premier. Ce que vous savez de l'arithmétique ordinaire vous aidera à le résoudre. Disons que vous avez 10 - (3 + 5). Tout d'abord vous évaluer la partie entre parenthèses pour obtenir

10 - 8

et l'évaluer comme d'habitude pour obtenir le réponse, 2.

l'Évaluation de ces expressions fonctionne de la même façon. Nous savons comment OR fonctionne d'en haut, de sorte que nous pouvons étendre notre table un peu:

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

maintenant c'est presque comme si nous étions de retour à la x AND y table. Nous substituons simplement la valeur de y OR z et évaluer. Dans la première ligne, nous avons

T AND (T OR T)

qui est la même que

T AND T

tout simplement T.

nous répétons la même chose processus pour les 8 valeurs possibles de x,y et z (2 valeurs possibles de x fois 2 valeurs possibles de y fois 2 valeurs possibles de z) pour obtenir

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

Certaines expressions peuvent être plus complexes qu'elles ne devraient l'être. Par exemple,

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

En d'autres termes, NOT (NOT x)équivalentx.

les règles de DeMorgan sont des astuces pratiques qui nous permettent de convertir entre des expressions équivalentes que l'ajustement de certains modèles:

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

(Vous pourriez penser de ce que la façon dont NOT distribue par simple AND et OR expressions.)

votre bon sens comprend probablement déjà ces règles! Par exemple, pensez au peu de sagesse populaire que "vous ne pouvez pas être à deux endroits à la fois."Nous pourrions le faire rentrer dans la première partie de la première règle:

NOT (here AND there)

application de la règle, c'est une autre façon de dire "Tu n'es pas là ou tu n'es pas là."

Exercice: Comment Pouvez-vous exprimer la deuxième règle en anglais?

Pour la première règle, regardons la table de vérité de l'expression sur le côté gauche du signe égal.

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

Maintenant le côté droit:

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

Les valeurs finales sont les mêmes dans les deux tables. Cela prouve que les expressions sont équivalent.

Exercice: Prouver que les expressions NOT (x OR y) et (NOT x) AND (NOT y) sont équivalents.

31
répondu Greg Bacon 2013-11-14 22:53:29

en regardant certaines des réponses, je pense que je peux mieux l'expliquer en utilisant des conditions qui sont en fait liées les unes aux autres.

la Loi de DeMorgan fait référence au fait qu'il existe deux façons identiques d'écrire n'importe quelle combinaison de deux conditions - spécifiquement, le AND combinaison (les deux conditions doivent être remplies), et le OR combinaison (l'une ou l'autre peut être vraie). Des exemples sont:

Partie 1 de DeMorgan de l' Droit

Déclaration: Alice a un frère ou une sœur.

Conditions: Alice a un frère OR Alice a une sœur.

Face: Alice est enfant unique (does NOT un frère ou une sœur).

Conditions: Alice fait NOT avoir un frère, AND elle n' NOT avoir une sœur.

En d'autres termes:NOT [A OR B] = [NOT A] AND [NOT B]

Partie 2 de DeMorgan Droit

Déclaration: Bob est chauffeur de voiture.

Conditions: Bob a une voiture AND Bob a une licence.

Face: Bob NOT un conducteur de la voiture.

Conditions: Bob does NOT avoir une voiture, OR Bob does NOT avoir une licence.

En d'autres termes:NOT [A AND B] = [NOT A] OR [NOT B].

je pense que ce serait un peu moins déroutante pour un 12-year-old. Il est certainement moins déroutant que toutes ces absurdités sur les tables de vérité (même je suis confus en regardant tous ces).

15
répondu Aaronaught 2010-01-30 18:18:14

c'est juste un moyen de reformuler des énoncés de vérité, ce qui peut fournir des façons plus simples d'écrire des conditionnels pour faire la même chose.

En clair:

Quand quelque chose n'est pas ceci ou Cela, il n'est également pas ceci et pas cela.

Quand quelque chose n'est-ce pas et qu'il n'est pas ceci ou pas cela.

Remarque: compte tenu de l'imprécision de la langue anglaise sur le mot " ou " je l'utilise pour signifier un non-ou exclusif dans l'exemple précédent.

par exemple le pseudo-code suivant est équivalent:

Si NON(A OU B)...

SI (PAS A) ET (PAS B)....

SI NON (A ET B)...

SI CE N'EST PAS LE CAS(A) OU (B)...

5
répondu JohnFx 2010-01-30 17:04:07

si vous êtes un agent de police qui cherche des buveurs mineurs, vous pouvez faire l'une des choses suivantes, et la loi de Morgan dit qu'elles équivalent à la même chose:

FORMULATION 1 (A AND B)

S'ils sont l'âge limite ET de boire un alcoolisées boisson, d'arrêter.

FORMULATION 2 (NOT (NOT A OR NOT B))

S'ils sont la limite d'âge OU de boire un non-alcoolique boisson, laissez-les aller.

ceci, soit dit en passant, n'est pas mon exemple. Pour autant que je sache, cela faisait partie d'une expérience scientifique où la même règle était exprimée de différentes façons afin de déterminer dans quelle mesure cela faisait une différence dans la capacité des gens à les comprendre.

2
répondu 2010-01-30 17:14:00

Formellement:

  • pas (voiture ou bus) = (pas de voiture) et (pas de bus)
  • pas (voiture et bus) = (pas de voiture) ou (pas de bus)

En anglais, " ou " tend à signifier un choix, que vous n'avez pas les deux choses. En logique, " or "signifie toujours la même chose que" and/or " en anglais.

Premier cas: pas (cor ou bus) = (pas de voiture) et (pas de bus)

 c | b || c or b | not (c or b) || (not c) | (not b) | (not c) and (not b)
---+---++--------+--------------++---------+---------+--------------------
 T | T ||    T   |      F       ||    F    |    F    |        F
---+---++--------+--------------++---------+---------+--------------------
 T | F ||    T   |      F       ||    F    |    T    |        F
---+---++--------+--------------++---------+---------+--------------------
 F | T ||    T   |      F       ||    T    |    F    |        F
---+---++--------+--------------++---------+---------+--------------------
 F | F ||    F   |      T       ||    T    |    T    |        T
---+---++--------+--------------++---------+---------+--------------------

Deuxième cas: pas (voiture et bus) = (pas de voiture) ou (pas de bus)

 c | b || c and b | not (c and b) || (not c) | (not b) | (not c) or (not b)
---+---++---------+---------------++---------+---------+--------------------
 T | T ||    T    |       F       ||    F    |    F    |        F
---+---++---------+---------------++---------+---------+--------------------
 T | F ||    F    |       T       ||    F    |    T    |        T
---+---++---------+---------------++---------+---------+--------------------
 F | T ||    F    |       T       ||    T    |    F    |        T
---+---++---------+---------------++---------+---------+--------------------
 F | F ||    F    |       T       ||    T    |    T    |        T
---+---++---------+---------------++---------+---------+--------------------
2
répondu Omnifarious 2010-01-30 17:53:28

dessinez un simple diagramme de Venn, deux cercles se croisant. A à gauche et B à droite. Maintenant (A et B)est évidemment le point d'intersection. Donc pas (A et B) est tout ce qui n'est pas dans l'intersection bit, le reste des deux cercles. La couleur que dans.

dessinez deux autres cercles comme avant, A et B, se croisant. Maintenant PAS (A) est tout ce qui est dans le bon cercle (B), mais pas l'intersection, parce que c'est évidemment a aussi bien que B. Colorez ceci en. De même pas (B) est tout dans le cercle de gauche mais pas l'intersection, parce que C'est B aussi bien que A. coloriez ceci.

deux dessins se ressemblent. Vous avez prouvé que pas(a et B) = PAS(A) ou pas (b). L'autre cas est laissé comme un exercice pour l'étudiant.

2
répondu Bob Moore 2010-01-30 18:59:20

la Loi de DeMorgan vous permet d'énoncer une chaîne d'opérations logiques de différentes façons. Il s'applique à la logique et la théorie des ensembles, où dans la théorie des ensembles vous utilisez le complément pour pas, l'intersection pour et, et l'union pour ou.

la Loi de DeMorgan vous permet de simplifier une expression logique, en exécutant une opération qui est plutôt similaire à la propriété distributive de multiplication.

donc, si vous avez ce qui suit dans un langage de type C

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

Il est logiquement équivalent à:

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

Il fonctionne également comme suit:

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

se transforme en

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

Et vous pouvez, bien sûr, aller dans le sens inverse.

l'équivalence de ces énoncés est facile à voir en utilisant quelque chose appelé une table de vérité. Dans une table truth, il vous suffit de présenter vos variables (x, y, z) et de lister toutes les combinaisons d'entrées pour ces variables. Vous avez alors des colonnes pour chaque prédicat, ou expression logique, et vous déterminez pour le donné inputs, la valeur de l'expression. Tout programme d'études universitaires en informatique, en génie informatique ou en génie électrique va probablement vous rendre fou avec le nombre et la taille des tables de vérité que vous devez construire.

alors pourquoi les apprendre? Je pense que la plus grande raison dans l'informatique est qu'il peut améliorer la lisibilité des expressions logiques plus grandes. Certaines personnes n'aiment pas utiliser logique pas ! devant les expressions, car ils pensent que cela peut embrouiller quelqu'un s'ils manquent il. L'impact de L'utilisation de la Loi de DeMorgan sur le niveau de porte des puces est utile, cependant, parce que certains types de porte sont plus rapide, moins cher, ou vous utilisez déjà un circuit intégré entier pour eux de sorte que vous pouvez réduire le nombre de paquets de puce nécessaires pour le résultat.

1
répondu Corey D 2010-01-30 17:12:02

Je ne sais pas pourquoi je l'ai gardé toutes ces années, mais il s'est avéré utile à plusieurs reprises. Merci à M. Bailey, mon professeur de mathématiques de 10e année. Il l'a appelé le théorème de deMorgan.

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

lorsque vous déplacez la négation dans ou hors des parenthèses, l'opérateur logique (et, ou) change.

0
répondu NotoriousWebmaster 2017-06-07 21:25:08