Dlaczego znak + jest powszechnie używany jako operator logiczny LUB?

14

Kilka dni temu zostałem zapytany, dlaczego dość często używa się +zamiast vsymbolu jako logicznego operatora OR w logice cyfrowej.

Jego argumentem było to, że korzystanie +z OR jest całkowicie sprzeczne z intuicją , ponieważ jest bardziej prawdopodobne, że będzie interpretowane jako ORAZ z ogólnego użycia / kontekstu.

Z Wiki : W logice i matematyce, lub jest operatorem opartym na prawdzie, znanym również jako (włącznie) rozłączanie i zmiana. Logiczny łącznik reprezentujący ten operator jest również znany jako „lub” i zazwyczaj jest zapisywany jako vlub +.

Zrobiłem trochę badań i wymyśliłem pochodzenie tego vznaku. Pochodzi od łacińskiego słowa „vel”, co oznacza „lub”.

Jedną z rzeczy, które składają się na mylącą naturę, jest +„i” z historycznego punktu widzenia. Zgodnie z tym i tym wymyślono go około 1360 roku jako skrót od łacińskiego „et” („i”) przypominającego znak plus.

Nie mam jednak pojęcia, kto wymyślił +algebrę boolowską i dlaczego wydaje się być preferowany vw kontekście cyfrowej logiki / inżynierii.

Rev1.0
źródło
4
OR jest podobny do PLUS w „normalnej” matematyce. AND jest podobny do MULTIPLY, więc używany jest operator.
Majenko
Być może dlatego, że w ocenie logiki binarnej każdy niezerowy wynik byłby uważany za „1”, a następnie „suma” byłby poprawny.
Tut
2
0 * 1 = 0 i 0 ORAZ 1 = 0. 0 + 1 = 1 i 0 LUB 1 = 1.
Photon
2
Bardziej teoretycznie, 0 to tożsamość addytywna dla liczb całkowitych, a 0 to także wartość tożsamości dla operacji OR na zestawie wartości boolowskich. (Przepraszam matematyków, jeśli wykorzystałem twój żargon)
The Photon
1
Może być tak, że chociaż klawiatury mają V, to litera V nie jest specjalnym V dla lub, i nie mają V odwróconego dla AND. Może gdyby klawiatury miały dla nich klucze, a nawet tylko dla OR, to nie
użyliby

Odpowiedzi:

16

Jedno słowo: Dystrybucja

Mnożenie polega na rozdzielaniu nad dodawaniem, podobnie jak logiczne ORAZ na dzieleniu logicznym LUB.

Z drugiej strony, mnożenie jest często używane bez symbolu ( 2azamiast 2*a), a logiczne AND jest bardzo podobne. Jeśli oba A i B muszą być prawdziwe, napisanie AB jest proste i intuicyjne.

Jest to bardzo przydatne w konstruowaniu tabel prawdy i opartych na nich algorytmów.

f=A+BC

nawet ktoś z niewielkim doświadczeniem zauważy na pierwszy rzut oka, że fmoże się to zdarzyć, gdy A jest prawdziwe lub gdy oba B i C są prawdziwe.

f=ABC
v^

Fakt, że 1 * 0 = 0i 1 + 0 = 1w algebrze boolowskiej wybraliśmy 1oznaczanie prawdy, a 0fałsz również pomaga zidentyfikować, który operator jest który. Symbole w matematyce są po prostu: symbolami. Mają znaczenie, ponieważ przypisaliśmy im znaczenie, więc lepiej jest, gdy wybieramy symbole, które można łatwo zapamiętać, a ich użycie w innych polach jest podobne.

vsz
źródło
3
Operatory AND i OR dzielą się między sobą w sposób, którego nie mnożą i nie dodają. Nie tylko jest A or (B and C)równoważne (A or B) and (A or C), ale X and (Y or Z)jest równoważne z (X and Y) or (X and Z). Mimo to uważam, że mnożenie zachowuje się bardziej jak „i” jest wystarczającą podstawą do podjęcia decyzji, że „lub” zostanie zamapowany na „+”.
supercat
Zazwyczaj akceptuję tę odpowiedź, ponieważ jest ona nieco czystsza i do rzeczy niż ta z AndrejaKo.
Rev 1.0
20

Jednym z argumentów, które zawsze stosowałem dla logicznych znaków AND i OR, jest ich związek z operacjami matematycznymi, które reprezentują.

Zacznijmy od logicznego AND. Często jest reprezentowany jako znak mnożenia, na przykład *. Więc jeśli masz długie wyrażenie, takie jak s1 * s2 * s3 * s4 .... i jedna ze zmiennych przyjmuje wartość 0 lub logiczne fałsz, to całe wyrażenie przyjmuje wartość 0, co jest całkiem normalne przy mnożeniu , ponieważ 1 * 1 * 0 * 1 ... równa się 0.

Z drugiej strony, gdy używamy znaku +, który zwykle oznacza dodawanie reprezentujące logiczne OR, mamy podobny przypadek. Jeśli mamy kilka zmiennych, które są ORed, to znów mamy przypadek s1 + s2 + s3 + s4 ... Jeśli tylko jedna ze zmiennych jest niezerowa, to wynik będzie również niezerowy, co jest logiczne (IMHO), gdy porównujemy LUB do dodania. Na przykład 0 + 0 + 1 + 0 ... równa się 1. Jeden punkt, w którym to łamie się, to znaczy, że mamy więcej, wynik jest nadal tylko jeden. Jednym ze sposobów myślenia, które zastosowałem w tym celu, jest po prostu pamiętanie, że reprezentuje on istnienie, więc coś istnieje i dodajesz do niego więcej bytu, on nadal będzie istniał.

AndrejaKo
źródło
Myślę, że znak jest kwestią konwencji, ponieważ operacje logiczne zdefiniowane w algebrze boolowskiej. Suma logiczna jest dobrze zdefiniowana jako produkt logiczny, dzięki czemu znakiem może być każdy. Myślę, że używane są bardziej znane znaki, które mogą mieć pewien związek z definicjami. Dobra odpowiedź.
Martin Petrei
Ciekawa odpowiedź. Jako ciekawostkę właśnie uzupełniłem mój post, że wydaje się, że historyczne pochodzenie +znaku (jako operatora binarnego) sprowadza się do skrótu łacińskiego „et” („i”) przypominającego znak plus.
Rev1.0
5

„Krótka historia zapisu algebry Boole'a” autorstwa Michaela Shcroedera, Nordic Journal of Philosophical Logic 2 (1): 41-62 (1997), użycie atrybutu + do reprezentowania włącznie - lub Leibniza w jego „Elementa Calculi”, oraz omawia użycie notacji przez Boole'a, a także niektóre inne notacje. link online

Tobias Hagge
źródło
2

Żadna dyskusja na temat tego, dlaczego często używa się + zamiast ∪, ∩, ∨, common , byłaby kompletna bez zauważenia, że drukarki i kody tranzytowe (takie jak Baudot, ITA i ASCII) podały alfabet, cyfry i „wspólne symbole biznesowe” „.

Trudno to teraz sobie wyobrazić, ale był czas, kiedy specjalne symbole nie były łatwo reprezentowane na wejściu i stanowiły dodatkowy koszt, nawet gdy skład.

Matematycy (i inni zwolennicy Algolu) chcieli z tego powodu większego zestawu symboli, ale 50 lat temu nie byłbyś w stanie wyrazić większego pytania, pisząc „dlaczego zamiast tego nie użyjemy odwróconego symbolu v pisania .AND. ?

David
źródło
Nawet dzisiaj wpisywanie specjalnych symboli jest jeszcze większym wysiłkiem niż pisanie czegoś, co ma klawisz na klawiaturze, a znaki inne niż ascii czasami ulegają zniekształceniu podczas przechodzenia między różnymi systemami (chociaż niektóre znaki ASCII są również podatne na awarie ze względu na wzrost języków znaczników).
Peter Green,