Логичка конјункција

Из Википедије, слободне енциклопедије

Логичка конјункција или логичко „и“ је једна од бинарних логичких операција чији је резултат „тачно“ само ако су оба операнда тачна, а у свим другим случајевима резултат је „нетачно“.

Обиљежавање[уреди]

Логичка конјункција као операција се обично назива логичким „и“, јер представља аналогију са говорним везником „и“. На примјер, ако се каже „Учићу математику ако будем одморан и ако будем имао времена“, то значи да ће се учење обавити само уколико се испуне оба услова — ако било који од услова буде нетачан или оба буду нетачна, учење се неће обавити.

У математичкој логици, логичка конјункција се означава симболом \land, па се конјункција елемената p и q обиљежава на сљедећи начин:

p \land q

Док се у електроници логичка конјункција обележава са \cdot, у програмирању се обележава са & или и. Неки програмски језици имају повезану контролну структуру, краткостројно и, које пипемо &&.

Табела истинитости[уреди]

Логичко „и“ се као операција најлакше и најпрактичније дефинише помоћу истинитосне таблице. Наиме, у таблици се дефинише резултат операције за све комбинације операнада. Пошто је операција бинарна (има само два операнда), а операнди су логичке вриједности (тачно или нетачно), истинитосна таблица је кратка и лако разумљива:

p q p ∧ q

Из таблице се лако види који је резултат операције за сваку могућу комбинацију параметара. На примјер, у трећој колони пише „ако је p нетачно а q тачно, онда је p \land q нетачно.“. У тзв. сабијеном облику ова истинитосна таблица изгледа на сљедећи начин:

Особине[уреди]

Операција конјункције има сљедеће математичке особине: 1. Резултат је исти без обзира да ли конјугујемо a са b или b са a, тј. није битан распоред операнада:

\forall p, q, p \land q = q \land p (комутативност)

2. Ако имамо више елемената које конјугујемо, резултат је исти без обзира на редослијед извршавања конјугације. Другим ријечима, није битно да ли прво конјугујемо први са другим, а онда резултат са трећим, или прво нпр. други са трећим, па резултат са првим:

\forall p, q, r, (p \land q) \land r = p \land (q \land r) (асоцијативност)

3. Ако се један елемент p конјугује са неким сложеним елементом који представља дисјункцију других елемената, тада се елемент p може прво конјуговати са сваким од њих посебно, а онда над та два резултата извршити дисјункцију. Иста ситуација важи и ако је сложени операнд конјункција. Другим ријечима, важе сљедеће формуле:

\forall p, q, r, p \land (q \lor r) = (p \land q) \lor (p \land r) (лијева дистрибутивност по дисјункцији)
\forall p, q, r, p \land (q \land r) = (p \land q) \land (p \land r) (лијева дистрибутивност по конјункцији)
\forall p, q, r, (q \lor r) \land p = (q \land p) \lor (r \land p) (десна дистрибутивност по дисјункцији)
\forall p, q, r, (q \land r) \land p = (q \land p) \land (r \land p) (десна дистрибутивност по конјункцији)

4. Било који елемент, кад се конјугује са самим собом, даје вриједност коју има и сам:

\forall p, p \land p = p (идемпотенција)

5. На крају, логичка конјугација је и монотона функција у односу на релацију логичке импликације:

\forall p, q, r, (p \Rightarrow q) \Rightarrow ((p \land r) \Rightarrow (q \land r))

Рачунарство[уреди]

Програмирање[уреди]

Конјункција се у програмирању користи као оператор који учествује у формирању сложених услова који морају бити задовољени да би се одређена радња обавила (гранање) или понављала (петља). На примјер, може се написати „ако је број прост И ако је већи од 10, испиши га на екран“. У различитим програмским језицима се користе различите ознаке за конјугацију, па се нпр. у програмском језику C користи ознака &&, у Паскалу енглеска ријеч AND (што на српском значи „и“), итд. Слиједи програмски код за споменути примјер, под претпоставком да је дефинисана функција prost:

if (prost(b) && b > 10) /* „ако је број прост И ако је већи од 10“ */
    printf("%d\n", b );   /* „одштампај га на екран“ */

Поред тога, конјугација се користи и у раду са битовима који граде меморијске локације; бит са вриједношћу 1 се посматра као логичка вриједност „тачно“ (⊤) а бит са вриједношћу 0 се посматра као логичка вриједност „нетачно“ (⊥), а резултат операције је број који је сачињен од битова који представљају резултате конјугације свих одговарајућих битова операнада. Тада се у C-у користи оператор &, а иако у стандардном Паскалу не постоји овај оператор, разна проширења га дефинишу и означавају исто као и обични оператор AND. Тако, ако имамо бројеве p = 45 и q = 56, резултат њихове бинарне конјугације је сљедећи:


\begin{alignat}{2}
p = 45 = & 0010 1101\\
q = 56 = & 0011 1000 \land \\
& 0010 1000 = 40
\end{alignat}

Базе података[уреди]

У базама података, конјункција се често користи као оператор који учествује у грађењу израза који одређује податке на које се одређена наредба односи. Тако, ако желимо да обришемо неваљане податке који су старији од 7 дана, имаћемо услов „да су неваљани И да су старији од 7 дана“. С обзиром да већина данашњих база података ради по SQL стандарду, оператор конјугације се углавном обиљежава енглеском ријечју AND.

Поријекло ријечи[уреди]

Ријеч „конјункција“ је настала од латинске ријечи „coniunctio, coniunctionis, f.“, што значи „спој“, „уједињење“ (као што у српском језику везник „и“ саставља — „елемент и елемент“). Битно је примијетити да се у српском језику слова „н“ и „ј“ нису спојила у „њ“, па је неправилно рећи и написати „коњункција“.

Види још[уреди]