Почему знак + обычно используется как логический оператор ИЛИ?

14

Несколько дней назад меня спросили, почему довольно часто +вместо vсимвола используется логический оператор ИЛИ в цифровой логике.

Его аргумент состоял в том, что использование +OR для контрацепции полностью противоречит интуиции , потому что оно более вероятно интерпретируется как AND из общего использования / контекста.

Из Wiki : В логике и математике, или является оператором с правдой, также известным как (включительно) дизъюнкция и чередование. Логическая связка, которая представляет этот оператор, также известна как «или» и обычно записывается как vили +.

Я провел небольшое исследование и выяснил происхождение vзнака. Это происходит от латинского слова «vel», что означает «или».

Одна вещь, которая дополняет запутанную природу, это то, что +означает «и» с исторической точки зрения. В соответствии с этим и этим он был изобретен около 1360 года как аббревиатура от латинского «et» («и»), напоминающая знак плюс.

Тем не менее, я понятия не имею, кто придумал +булеву алгебру и почему она кажется предпочтительнее в vконтексте цифровой логики / инженерии.

rev1.0
источник
4
ИЛИ сродни ПЛЮСУ в «нормальной» математике. AND похож на MULTIPLY, поэтому используется оператор ·.
Majenko
Возможно, потому что в оценке двоичной логики любой ненулевой результат будет считаться «1», тогда «сумма» будет правильной.
Тут
2
0 * 1 = 0 и 0 И 1 = 0. 0 + 1 = 1 и 0 ИЛИ 1 = 1.
Фотон
2
Более теоретически, 0 является аддитивным тождеством для целых чисел, а 0 также является тождественным значением для операции ИЛИ в наборе логических значений. (Прошу прощения у любых математиков, если я злоупотребил вашим жаргоном)
The Photon
1
Может быть так, что хотя на клавиатурах есть буква V, буква V не является специальной буквой V для или, и у них нет перевернутой буквы V для AND. Возможно, если бы на клавишах были клавиши для тех или даже просто для ИЛИ, тогда они не использовали бы +
barlop

Ответы:

16

Одно слово: дистрибутивность

Умножение является дистрибутивным по сложению, а также логическим И дистрибутивным по логическому ИЛИ.

С другой стороны, умножение часто используется без символа ( 2aвместо 2*a), и логическое И очень похоже. Если и A, и B должны быть истинными, написать AB очень просто и интуитивно понятно.

Это очень удобно при построении таблиц истинности и алгоритмов на их основе.

езнак равноA+ВС

даже кто-то с небольшим опытом на первый взгляд заметит, что fможет произойти, когда A истинно, или когда B и C истинны.

езнак равноAВС
v^

Тот факт, что 1 * 0 = 0и 1 + 0 = 1в булевой алгебре мы выбрали 1значение true и 0значение false, также помогает определить, какой оператор есть какой. Символы в математике - это просто символы. Они имеют значение, потому что мы присвоили им значение, поэтому лучше, если мы выберем символы, которые легко запомнить, и их использование в других областях аналогично.

ВСЗ
источник
3
Операторы «И» и «ИЛИ» распределяются между собой так , как умножение и сложение - нет. Не только A or (B and C)эквивалентно (A or B) and (A or C), но X and (Y or Z)эквивалентно (X and Y) or (X and Z). Тем не менее, я думаю, что тот факт, что умножение ведет себя больше как «и», является достаточным основанием для принятия решения, что «или» отображается на «+».
суперкат
Я склонен принять этот ответ, потому что он несколько чище и точнее, чем ответ от AndrejaKo.
Rev 1.0
20

Одна из рассуждений, которую я всегда использовал для логических знаков И и ИЛИ, - это их отношение к математическим операциям, которые они представляют.

Давайте начнем с логического И. Это часто представляется как знак умножения, например *. Поэтому, если у вас есть длинное выражение, например s1 * s2 * s3 * s4 .... и одна из переменных принимает значение 0 или логическое ложное значение, тогда все выражение будет принимать значение 0, что вполне нормально для умножения потому что 1 * 1 * 0 * 1 ... равно 0.

С другой стороны, когда мы используем знак +, который обычно обозначает добавление для представления логического ИЛИ, мы имеем похожий случай. Если у нас есть несколько переменных, которые ORed, то мы снова имеем случай s1 + s2 + s3 + s4 ... Если только одна из переменных ненулевая, то результат также будет ненулевым, что логично (ИМХО), когда мы сравниваем ИЛИ с дополнением. Например, 0 + 0 + 1 + 0 ... равно 1. Одна точка, где этот разрыв - это то, что у нас больше, результат все еще один. Один из способов мышления, который я использовал для этого, состоит в том, чтобы просто помнить, что человек представляет существование, поэтому что-то существует, и вы добавляете к нему больше существования, оно все еще будет существовать.

AndrejaKo
источник
Я думаю, что знак является условным условием, поскольку логические операции определены в булевой алгебре. Логическая сумма хорошо определена как логическое произведение, так что знаком может быть любой. Я думаю, что используются более знакомые признаки, которые могут иметь какое-то отношение к определениям. Хороший ответ.
Мартин Петрей
Интересный ответ. Что касается интереса, я только добавил к своему сообщению, что кажется, что историческое происхождение +знака (как бинарный оператор) сводится к сокращению латинского «et» («и»), напоминающему знак плюс.
Rev 1.0
5

«Краткая история обозначений алгебры Буля» Майкла Шкредера, Nordic Journal of Philosophical Logic 2 (1): 41-62 (1997), приписывает использование + для представления включительно или Лейбницу в его «Элементных исчислениях», и обсуждает использование Булем нотации, а также некоторые другие нотации. онлайн ссылка

Тобиас Хагге
источник
2

Никакое обсуждение почему не общее использование + вместо ∪, ∩, ∨, ∧ будет полным без отметить , что принтеры и коды Tranmission (например, Бодо, ITA, и ASCII) , предусмотренный алфавит, цифру и «общие бизнес - символы ».

Сейчас это сложно представить, но было время, когда специальные символы не были легко представлены на входе и представляли дополнительную стоимость даже при наборе текста.

По этой причине математики (и другие сторонники Алгола) хотели больший набор символов, но 50 лет назад вы даже не смогли бы выразить более крупный вопрос, если бы не написали «почему бы нам не использовать вместо этого инвертированный символ v» написания .И. ?

Дэвид
источник
Даже сегодня ввод специальных символов по-прежнему требует больше усилий, чем просто ввод чего-то, имеющего клавишу на клавиатуре, и символы, не являющиеся ascii, иногда оказываются искаженными при перемещении между различными системами (хотя некоторые символы ASCII также уязвимы из-за появления языков разметки).
Питер Грин