Strona główna » Algorytmy » Artykuły » Matryca Logiczna

Matryca Logiczna

Wstęp

W informatyce wszystkie operacje odbywają się na bitach. Zasada ich działania jest zgodna z logiką stworzoną w XIX wieku. Twórcami byli logicy amerykańscy: Charlesa Sandersa Peirce'a i Emila Leona Posta (polskiego pochodzenia). Stworzyli oni szereg tabelek przedstawiających wyniki dla każdej pary argumentów.

Poniżej zostały przedstawione wybrane, najczęściej używane operacje logiczne w matematyce oraz informatyce. Pełna matryca logiczna dla dwóch wartości logicznych p oraz q składa się z 16 różnych przekształceniach.

Operacje logiczne

Alternatywa

pqp OR q

Alternatywa jest też zwana sumą logiczną. Funkcja przyjmuje wartość prawda kiedy co najmniej jeden argument ma wartość prawda. W przeciwnym wypadku zwracany jest fałsz. Przykładowo: 2 jest parzyste OR 6 jest nieparzyste to (prawda OR fałsz) zwróci prawdę.

Powiązane operatory w C++: (p | q) lub (p bitor q).

000
101
011
111

Alternatywa wykluczająca

pqp XOR q

Przyjmuje prawdę dokładnie wtedy, gdy co najmniej jedna z nich jest prawdziwa. W przeciwnym wypadku zwracany jest fałsz. Przykładowo: 2 jest parzyste XOR 6 jest nieparzyste to (prawda XOR fałsz) zwróci prawdę.

Powiązane operatory w C++: (p ^ q) lub (p xor q). Alternatywę wykluczająca możemy uzyskać wykorzystując równoważność i negacje: NOT (x == y).

000
101
011
110

Koniunkcja

pqp AND q

Przyjmuje prawdę dokładnie wtedy, gdy oba argumenty są prawdziwe. W przeciwnym wypadku zwracany jest fałsz. Przykładowo: 2 jest parzyste AND 6 jest nieparzyste to (prawda AND fałsz) zwróci fałsz.

Powiązane operatory w C++: (p & q), (p bitand q), (p AND q), (p && q).

000
100
010
111

Negacja

p!p

Zwraca wartość zaprzeczenia dla podanego argumentu. Przykładowo: NOT 2 jest parzyste to (NOT prawda) zwróci fałsz.

Powiązane operatory w C++: (!p), (not p), (~p), (compl p).

01
10

Równoważność

pqp = q

Przyjmuje prawdę dokładnie wtedy, gdy oba argumenty są identyczne. W przeciwnym wypadku zwracany jest fałsz. Przykładowo: 2 jest parzyste = 6 jest nieparzyste to (prawda = fałsz) zwróci fałsz.

Powiązane operatory w C++: (p == q). Bardzo często operator == porównania jest mylony z operatorem przypisania =.

001
100
010
111

Dysjunkcja

pqp NAND q

Przyjmuje fałsz dokładnie wtedy, gdy oba argumenty są prawdziwe. W przeciwnym wypadku zwracana jest prawda. Przykładowo: 2 jest parzyste NAND 6 jest nieparzyste to (prawda NAND fałsz) zwróci fałsz.

W C++ nie istnieje operator do dysjunkcji, ale można użyć koniunkcji oraz negacji tj.: NOT (x AND y).

000
100
010
111

Binegacja

pqp NOR q

Zwraca prawdę, gdy oba argumenty są fałszywe. W przeciwnym wypadku zwracany jest fałsz. Przykładowo: 2 jest parzyste NOR 6 jest nieparzyste to (prawda NOR fałsz) zwróci fałsz.

W C++ nie istnieje operator do binegacji, ale można użyć alternatywy oraz negacji tj.: NOT (x OR y).

001
100
010
110