IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

[Boole] Opérateur logique


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Par défaut [Boole] Opérateur logique
    Bonjour à tous,

    J'ai une question sur le opérateur logique
    Je ne comprend pas du tout comment résoudre certaine(ce genre d')opération, pourtant très basique du genre : (NOT a) OR b. Ou encore, (NOT a)OR (NOT b).

    J'ai rien compris au cour que mon prof ma donné, c'est pas faute d'avoir essaié et d'avoir posé pleins de question . J'ai cherché sur internet un WIKI sur l'algèbre de Boole et c'est toujours pas claire.

    Pourriez-vous m'aider, merci beaucoup

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Octobre 2006
    Messages : 40
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Je ne comprend pas du tout comment résoudre certaine(ce genre d')opération, pourtant très basique du genre : (NOT a) OR b. Ou encore, (NOT a)OR (NOT b).
    La question serait ce que tu veux faire exactement avec ces petites équations ? Les simplifier ? Mettre en place des tables de vérité ? Comprendre ?

    La logique se fonde sur:
    • 1 qui est la valeur vraie
    • 0 qui est la valeur fausse


    Tout est "logique". Tu as un certain nombre d'opérations comme
    • => l'implication
    • or pour le ou
    • and pour le et
    • not pour le non


    Dans ton exemple NOT a OR b, les variables sont des booléens (0 ou 1) et le reste des opérations (comme des additions, soustractions, multiplications etc), qui respectent des règles précises.

    a b NOT a NOT a OR b
    0 0 1 1
    1 0 0 0
    0 1 1 1
    1 1 0 1

    NOT a représente non a et donc l'inverse des valeurs de la table. Si a vaut 0, alors NOT a vaut 1. Ensuite tu passes à l'opération OR. L'opération OR dit tout simplement que si l'une des valeurs est à 1 alors l'opération vaut 1 (vrai ou faux donne forcément vrai.

    Donc
    1 OR 0 = 1 par exemple.

    L'opération AND dit que si l'une des valeurs est fausse alors l'expression est fausse.

    Donc

    1 AND 0 = 0 par exemple.


    Pour être un peu plus précis tu écris les différentes combinaisons possibles entre les variables. Puis tu effectues les opérations une par une.

    Dans le cas de (NOT a) OR (NOT b), tu écris a, b, NOT a, NOT b et finalement NOT a OR NOT b. En regardant la table de vérité tu peux aboutir en une simplification si tu t'y connais bien. Sinon tu peux passer par des simplifications directes comme la commutativité, la distributivité de l'opération OR par rapport à AND etc etc. Deux façons en fait de résoudre ces équations.

    Bref ensuite le but est d'appliquer les règles pour simplifier les expressions, ou les modifier de manière à obtenir des résultats "utiles". Si tu as des questions plus précises n'hésite pas, je suis resté délibérément très surfacique. L'intérêt si tu ne le vois pas réside dans la logique mathématique et dans les manière de démontrer certaines choses.

    Par exemple réfléchis à cette équation a => b = (NOT a) AND b

    Et imagine ce que tu peux faire avec dans des cas mathématiques au niveau du raisonnement logique. Un indice, tu dois l'utiliser très souvent si tu cherches à démontrer pas mal de choses en maths.

    L'algèbre de bool est donc un outil principalement

  3. #3
    Membre éclairé Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Par défaut
    Merci nletteron,

    tu es le pimp de Boole.

    Tu as raison j'ai pas été assé précis dans ma question ce que je souhaite c'est :
    Mettre en place des tables de vérité et comprendre
    Je sais et je vois que dans le raisonnement il n'y a rien de difficile tout est logique. Ce que je ne comprend pas c'est comment fais-tu pour mettre en place la table de vérité.
    Un exemple concret pourrait peut-être t'aider à comprendre ce que je ne comprend pas

    (NOT a) OR b :
    Pour moi NOT a vaut :
    0
    1
    Donc (NOT a) OR b vaut :
    0 0 0
    1 1 1
    0 1 1
    1 0 1

    Voilà comment je l'écrirais est-ce juste ? J'en sais rien... bah je comprend pas pourquoi même si c'est très logique.

    Voilà comment j'ai réfléchi :
    NOT n'a que deux position 1 et 0 par contre le OR en a 4. Donc j'écris toute les possibilité de 1 et 0 pour pouvoir avoir mon OR b. Mais mon oppération ne peut pas être juste puisque là je viens d'écrire la table de vérité a or b ...

    Manquerais plus qu'on me dise de faire 2b or (not 2b)

    Merci beaucoup nletteron pour ton aide, j'espère que ça t'aidera à mieux comprendre ce que je ne comprends pas.

  4. #4
    Membre éclairé Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Par défaut
    Je vais prendre un autre exemple et essaier ta méthode de résolution qui évidemment est la bonne.

    (NOT a) AND b
    abc_NOT a_NOT a AND B
    10__0_____0
    00__1_____0
    11__0_____0
    01__1_____1

    Donc mon résultat est :
    1000
    0010
    1100
    0111

    C'est juste ?

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Octobre 2006
    Messages : 40
    Par défaut
    (NOT a) AND b


    a___b___NOT a___ (NOT a) AND b
    0___0____1___________0
    0___1____1___________1
    1___0____0___________0
    1___1____0___________0

    Voilà.

    Le raisonnement est identique. Quand tu fais de l'algèbre de Boole a 2 variables (a et b dans ce cas) tu commences par écrire toutes les combinaisons de a et b, soit toujours 4 lignes.

    Ensuite tu appliques les opérateurs un par un. Dans ce cas là, en premier NOT a (pour avoir l'inverse de a) et ensuite l'opérateur AND pour effectuer (NOT a) que tu viens d'obtenir couplé avec AND b.

    Donc oui ton résultat est bon

    L'erreur que tu fais c'est que lorsque tu prends NOT a il faut déjà avoir à l'esprit toutes les combinaisons existantes avec les autres variables. Par exemple si tu as: NOT a AND b OR NOT c ta table aura en entrée obligatoirement

    a_b_c
    0_0_0
    0_1_0
    0_1_1
    0_0_1
    1_0_1
    1_1_0
    1_1_1

    (j'espère que j'en oublie pas)

    Et ensuite tu appliques les opérateurs les uns à la suite des autres. Tu calculeras par exemple NOT a puis NOT a AND b puis NOT a AND b OR c (à moins que la priorité des opérateurs soient différente ).

    L'important est que le NOT n'a pas 2 entrées uniquement puisque tu raisonnes sur 2 variables donc 4 combinaisons. Le principal est que l'opérateur ne s'applique qu'après avoir trouvé toutes les combinaisons, ce qui soit dit en passant est logique quand on regarde toute l'expression et pas seulement un opérateur après l'autre. C'est le principe de base d'une table de vérité:

    • Ecrire les combinaisons
    • Appliquer les opérateurs dans l'ordre de priorité

  6. #6
    Membre éclairé Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Par défaut
    Salut nletteron,

    Sincèrement merci pour ton aide je commence à y voir pluc claire. C'est tellement logique quand je vois (NOT a) AND b. Qui donne :
    a___b___NOT a___ (NOT a) AND b. Après il nous reste plus qu'à mettre le 0 et 1 qui vont bien infiniment !!!!

    Juste pour ton ton
    a_b_c
    0 0 0
    0 0 1
    0 1 0
    1 0 0
    0 1 1
    1 1 0
    1 0 1
    1 1 1

    Salut bonne journée et merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Opérateurs logiques - Algèbre de Boole
    Par me784 dans le forum Mathématiques
    Réponses: 12
    Dernier message: 10/10/2008, 20h13
  2. [EL] El et opérateur logique
    Par LeXo dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 20/07/2006, 21h28
  3. Opérateurs logiques en C
    Par bandit boy dans le forum C++Builder
    Réponses: 6
    Dernier message: 19/07/2006, 13h16
  4. Opérateurs logiques: solution plus simple?
    Par p0Kep0K dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/04/2006, 15h48
  5. [VBA] Condition - opérateurs logiques
    Par Virgile59 dans le forum Access
    Réponses: 6
    Dernier message: 07/10/2005, 10h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo