Исключающее или , исключающее дизъюнкция , исключающее чередование , логическая неэквивалентность или логическое неравенство — это логический оператор , отрицание которого является логическим биусловием . С двумя входами XOR истинен тогда и только тогда, когда входы различаются (один истинен, один ложен). С несколькими входами XOR истинен тогда и только тогда, когда число истинных входов нечетно . [ 1]
Он получил название «исключающее или», потому что значение «или» неоднозначно, когда оба операнда истинны. XOR исключает этот случай. Некоторые неформальные способы описания XOR — «один или другой, но не оба», «либо один, либо другой» и «A или B, но не A и B».
Он обозначается префиксным оператором [2] : 16 и инфиксными операторами XOR ( / ˌ ɛ k s ˈ ɔː r / , / ˌ ɛ k s ˈ ɔː / , / ˈ k s ɔː r / или / ˈ k s ɔː / ), EOR , EXOR , , , , ⩛ , , , и .
Определение
Таблица истинности показывает , что она выводит значение true всякий раз, когда входные данные различаются:
Эквивалентности, исключение и введение
Исключительная дизъюнкция по сути означает «либо одно, но не оба, ни ни одно». Другими словами, утверждение истинно тогда и только тогда, когда одно из них истинно, а другое ложно. Например, если скачут две лошади, то одна из них выиграет гонку, но не обе. Исключительная дизъюнкция , также обозначаемая как или , может быть выражена в терминах логической конъюнкции («логическое и», ), дизъюнкции («логическое или», ) и отрицания ( ) следующим образом:
Исключающую дизъюнкцию можно также выразить следующим образом:
Это представление XOR может оказаться полезным при построении схемы или сети, поскольку оно имеет только одну операцию и небольшое количество операций и . Доказательство этой идентичности приведено ниже:
Иногда полезно писать следующим образом:
или:
Эту эквивалентность можно установить, дважды применив законы Де Моргана к четвертой строке приведенного выше доказательства.
Хотя операторы ( конъюнкция ) и ( дизъюнкция ) очень полезны в логических системах, они не соответствуют более обобщаемой структуре следующим образом:
Системы и являются моноидами , но ни одна из них не является группой . К сожалению, это препятствует объединению этих двух систем в более крупные структуры, такие как математическое кольцо .
Однако система, использующая исключающее или, является абелевой группой . Сочетание операторов и над элементами создает хорошо известное двухэлементное поле . Это поле может представлять любую логику, доступную с помощью системы , и имеет дополнительное преимущество в виде арсенала инструментов алгебраического анализа для полей.
Более конкретно, если сопоставить 0 и 1, то можно интерпретировать логическую операцию «И» как умножение , а операцию «ИСКЛЮЧАЮЩЕЕ ИЛИ» — как сложение :
Дизъюнкция часто понимается исключительно в естественных языках . В английском языке разделительное слово "or" часто понимается исключительно, особенно когда используется с частицей "either". Английский пример ниже обычно понимается в разговоре как подразумевающий, что Мэри не является одновременно певицей и поэтессой. [4] [5]
1. Мэри — певица или поэтесса.
Однако дизъюнкция может также пониматься инклюзивно, даже в сочетании с «или». Например, первый пример ниже показывает, что «или» может быть удачно использовано в сочетании с прямым утверждением, что оба дизъюнкта истинны. Второй пример показывает, что исключающее умозаключение исчезает в нисходящих влекущих контекстах. Если бы дизъюнкция понималась как исключающая в этом примере, это оставило бы открытой возможность того, что некоторые люди ели и рис, и бобы. [4]
2. Мэри — либо певица, либо поэтесса, либо и то, и другое.
3. Никто не ел ни риса, ни бобов.
Примеры, подобные приведенным выше, мотивировали анализ вывода исключительности как прагматических разговорных импликатур, рассчитанных на основе инклюзивной семантики . Импликатуры обычно отменяемы и не возникают в нисходящих выводных контекстах, если их расчет зависит от Максимы Количества . Однако некоторые исследователи рассматривали исключительность как добросовестное семантическое выводное значение и предлагали неклассические логики, которые могли бы его подтвердить. [4]
Такое поведение английского "or" также встречается в других языках. Однако во многих языках есть дизъюнктивные конструкции, которые являются строго исключающими, например, французский soit... soit . [4]
Альтернативные символы
Символ, используемый для исключающей дизъюнкции, варьируется от одной области применения к другой и даже зависит от свойств, которые подчеркиваются в данном контексте обсуждения. В дополнение к аббревиатуре "XOR" можно также увидеть любой из следующих символов:
был использован Джорджем Булем в 1847 году. [6] Хотя Буль использовал его в основном на классах, он также рассматривал случай, когда предложения в , и в то время является связкой. Более того, Буль использовал его исключительно. Хотя такое использование не показывает связь между инклюзивной дизъюнкцией (для которой почти постоянно используется в настоящее время) и исключающей дизъюнкцией, а также может вызывать путаницу с другими его использованиями, некоторые классические и современные учебники все еще сохраняют такое использование. [7] [8]
был использован Кристиной Лэдд-Франклин в 1883 году. [9] Строго говоря, Лэдд использовал его для выражения « is-not » или «No is », т. е. использовал в качестве исключений, хотя неявно имеет значение исключающей дизъюнкции, поскольку статья озаглавлена как «Об алгебре логики».
, обозначающее отрицание эквивалентности , использовал Эрнст Шредер в 1890 году, [10] : 307 Хотя использование как эквивалентности можно отнести к Джорджу Булю в 1847 году, [6] в течение 40 лет после Буля его последователи, такие как Чарльз Сандерс Пирс , Хью Макколл , Джузеппе Пеано и т. д., не использовали как неэквивалентность буквально, возможно, потому, что ее можно было легко определить через отрицание и эквивалентность.
был использован Джузеппе Пеано в 1894 году: " . Знак соответствует латинскому aut ; знак vel ." [11] : 10 Обратите внимание, что латинское слово "aut" означает "исключающее или", а "vel" означает "включающее или", и Пеано использовал это как включающую дизъюнкцию.
использовался Израилом Соломоновичем Градштейном (Izrail Solomonovich Gradstein) в 1936 году. [12] : 76
был использован Клодом Шенноном в 1938 году. [13] Шеннон заимствовал символ как исключающую дизъюнкцию у Эдварда Вермилье Хантингтона в 1904 году. [14] Хантингтон заимствовал символ у Готфрида Вильгельма Лейбница в 1890 году (первоначальная дата точно не известна, но почти наверняка он написан после 1685 года; и 1890 год - это время публикации). [15] В то время как Хантингтон в 1904 году и Лейбниц в 1890 году использовали символ как алгебраическую операцию. Кроме того, Хантингтон в 1904 году использовал символ как инклюзивную дизъюнкцию (логическую сумму), а в 1933 году использовал как инклюзивную дизъюнкцию. [16]
(как префиксный оператор , ) был использован Юзефом Марией Бохеньским в 1949 году. [2] : 16 Кто-то [18] может ошибочно принять, что именно Ян Лукасевич первым использовал для исключающей дизъюнкции (кажется, эта ошибка широко распространена), в то время как ни в 1929 году [19], ни в других работах Лукасевич не использовал такого использования. Фактически, в 1949 году Бохеньский ввел систему польской нотации , которая называет все 16 бинарных связок классической логики, которая является совместимым расширением нотации Лукасевича 1929 года, и в которой для исключающей дизъюнкции впервые появилось. Использование Бохеньским термина «исключающая дизъюнкция» не имеет никакого отношения к польскому «alternatywa rozłączna» — «исключающее или» и является случайностью, см. таблицу на стр. 16 книги 1949 года.
^, знак вставки , использовался в нескольких языках программирования для обозначения побитового исключающего оператора ИЛИ, начиная с языка C [20] , а также включая C++ , C# , D , Java , Perl , Ruby , PHP и Python .
Симметричная разность двух множеств и , которую можно интерпретировать как их поэлементное исключающее или, по-разному обозначается как , , или . [21]
Исключающее ИЛИ не распространяется ни на одну двоичную функцию (даже на само себя), но логическая конъюнкция распространяется на исключающее ИЛИ . (Конъюнкция и исключающее ИЛИ образуют операции умножения и сложения поля GF (2) , и как в любом поле они подчиняются распределительному закону.)
Исключительная или с одним указанным входом, как функция другого входа, является инволюцией или самообратной функцией; применение ее дважды оставляет переменный вход неизменным.
Если используются двоичные значения для «истина» (1) и «ложь» (0), то исключающее «или» работает точно так же, как сложение по модулю 2.
Информатика
Побитовая операция
Исключающая дизъюнкция часто используется для побитовых операций. Примеры:
Как отмечено выше, поскольку исключающая дизъюнкция идентична сложению по модулю 2, побитовая исключающая дизъюнкция двух n -битных строк идентична стандартному вектору сложения в векторном пространстве .
В информатике исключающая дизъюнкция имеет несколько применений:
Он сообщает, являются ли два бита неравными.
Это управляемый бит-флиппер (управляющий вход выбирает, инвертировать или нет входные данные).
В логических схемах простой сумматор можно создать с помощью вентиля XOR для сложения чисел и серии вентилей AND, OR и NOT для создания выходного сигнала переноса.
В некоторых архитектурах компьютеров эффективнее сохранять ноль в регистре, выполняя операцию XOR регистра с самим собой (биты, подвергнутые операции XOR с самими собой, всегда равны нулю), чем загружать и сохранять нулевое значение.
В криптографии XOR иногда используется как простая, самообратная функция смешивания, например, в одноразовых шифрблокнотах или сетевых системах Фейстеля . [ требуется ссылка ] XOR также широко используется в блочных шифрах, таких как AES (Rijndael) или Serpent, а также в реализациях блочных шифров (CBC, CFB, OFB или CTR).
Аналогично, XOR может использоваться при генерации пулов энтропии для аппаратных генераторов случайных чисел . Операция XOR сохраняет случайность, то есть случайный бит, подвергнутый XOR с неслучайным битом, даст в результате случайный бит. Несколько источников потенциально случайных данных могут быть объединены с помощью XOR, и непредсказуемость выходных данных гарантированно будет как минимум такой же хорошей, как у лучшего отдельного источника. [22]
XOR используется в RAID 3–6 для создания информации о четности. Например, RAID может «создать резервную копию» байтов 10011100 2 и 01101100 2 с двух (или более) жестких дисков, выполнив операцию XOR только что упомянутых байтов, в результате чего получится ( 11110000 2 ) и записав его на другой диск. Согласно этому методу, если какой-либо из трех жестких дисков потерян, потерянный байт может быть воссоздан путем выполнения операции XOR с байтами с оставшихся дисков. Например, если диск, содержащий 01101100 2 , потерян, 10011100 2 и 11110000 2 могут быть выполнены с помощью операции XOR для восстановления потерянного байта. [23]
XOR также используется для обнаружения переполнения в результате знаковой двоичной арифметической операции. Если самый левый сохраненный бит результата не совпадает с бесконечным числом цифр слева, то это означает, что произошло переполнение. XOR этих двух битов даст "1", если есть переполнение.
XOR можно использовать для обмена двух числовых переменных в компьютерах, используя алгоритм обмена XOR ; однако это скорее считается курьёзом и не поощряется на практике.
\nleftrightarrowВ разметке на основе LaTeX ( ) он также называется "стрелка не влево-вправо" ( ). Помимо кодов ASCII, оператор кодируется как U+22BB ⊻ XOR ( ⊻ ) и U+2295 ⊕ CIRCLED PLUS ( ⊕, ⊕ ), оба в блочных математических операторах .
^ Аб Боченски, JM (1949). Précis de logique mathématique (PDF) (на французском языке). Нидерланды: Ф.Г. Крундер, Буссум, Пайс-Бас.Перевод: Bocheński, JM (1959). A Precis of Mathematical Logic . Перевод: Bird, O. Dordrecht, Holland: D. Reidel Publishing Company. doi : 10.1007/978-94-017-0592-9. ISBN 978-90-481-8329-6.
^ Жу, Антуан (2009). "9.2: Алгебраические нормальные формы булевых функций". Алгоритмический криптоанализ . CRC Press. С. 285–286. ISBN9781420070033.
^ abcd Aloni, Maria (2016). «Дизъюнкция». В Zalta, Edward N. (ред.). The Stanford Encyclopedia of Philosophy (зима 2016 г.). Metaphysics Research Lab, Stanford University . Получено 2020-09-03 .
^ Дженнингс цитирует многочисленных авторов, утверждающих, что слово «или» имеет исключительный смысл. См. главу 3 «Первый миф об «или»»: Дженнингс, Р. Э. (1994). Генеалогия дизъюнкции . Нью-Йорк: Oxford University Press.
^ Буль, Г. (1847). Математический анализ логики, как эссе к исчислению дедуктивного рассуждения. Кембридж/Лондон: Macmillan, Barclay, & Macmillan/George Bell. стр. 17.
^ Эндертон, Х. (2001) [1972]. Математическое введение в логику (2-е изд.). Сан-Диего, Нью-Йорк, Бостон, Лондон, Торонто, Сидней и Токио: A Harcourt Science and Technology Company. стр. 51.
^ Раутенберг, В. (2010) [2006]. Краткое введение в математическую логику (3-е изд.). Нью-Йорк, Дордрехт, Гейдельберг и Лондон: Springer. стр. 3.
^ Лэдд, Кристин (1883). «Об алгебре логики». В Пирсе, Ч.С. (ред.). Исследования по логике, выполненные членами Университета Джонса Хопкинса . Бостон: Little, Brown & Company. С. 17–71.
^ Шредер, Э. (1890). Vorlesungen über die Algebra der Logik (Exakte Logik), Erster Band (на немецком языке). Лейпциг: Druck und Verlag BG Teubner.Переиздано издательством Thoemmes Press в 2000 году.
^ Пеано, Г. (1894). Математические обозначения логики. Введение в математические формулы . Турин: Фрателли Боккна. Перепечатано в Peano, G. (1958). Опера Scelte, Том II. Рома: Edizioni Cremonese. стр. 123–176.
^ ГРАДШТЕЙН, И. С. (1959) [1936]. ПРЯМАЯ И ОБРАТНАЯ ТЕОРЕМЫ: ЭЛЕМЕНТЫ АЛГЕБРЫ ЛОГИКИ (3-е изд.). МОСКВА: ГОСУДАРСТВЕННОЕ ИЗДАТЕЛЬСТВО ФИЗИКА-МАТЕМАТИЧЕСКОЙ ЛИТЕРАТУРЫ.Перевод: Градштейн, И.С. (1963). Прямые и обратные теоремы: элементы символической логики . Перевод: Боддингтон, Т. Оксфорд, Лондон, Нью-Йорк и Париж: Pergamon Press.
^ Шеннон, CE (1938). «Символический анализ релейных и коммутационных схем» (PDF) . Труды Американского института инженеров-электриков . 57 (12): 713–723. doi :10.1109/T-AIEE.1938.5057767. hdl : 1721.1/11173 . S2CID 51638483.
^ Хантингтон, Э. В. (1904). «Наборы независимых постулатов для алгебры логики». Труды Американского математического общества . 5 (3): 288–309. doi :10.1090/S0002-9947-1904-1500675-4.
^ Лейбниц, GW (1890) [16??/17??]. Герхардт, CI (ред.). Die philosophischen Schriften, Siebter Band (на немецком языке). Берлин: Вайдманн. п. 237 . Проверено 7 июля 2023 г.
^ Хантингтон, Э. В. (1933). «Новые наборы независимых постулатов для алгебры логики, со специальной ссылкой на Principia Mathematica Уайтхеда и Рассела». Труды Американского математического общества . 35 (1): 274–304.
^ Чёрч, А. (1996) [1944]. Введение в математическую логику . Нью-Джерси: Princeton University Press. стр. 37.
^ Лукасевич, Ян (1929). Elementy logiki matematycznej [ Элементы математической логики ] (на польском языке) (1-е изд.). Варшава, Польша: Państwowe Wydawnictwo Naukowe .