Эксклюзивный или - Exclusive or

Эксклюзивный или
XOR
Диаграмма Венна Exclusive или
Таблица истинности
Логический вентильXOR ANSI.svg
Нормальные формы
Дизъюнктивный
Конъюнктивный
Полином Жегалкина
Решетки столба
0-сохранениеда
1-консервирующийнет
Монотонныйнет
Аффинныйда
Диаграмма Венна из

Эксклюзивный или или исключительная дизъюнкция это логическая операция который выводит истину только в том случае, если входные данные различаются (одно истинно, другое ложно).[1]

это символизированный оператором префикса J[2] и по инфикс операторы XOR (/ˌɛksˈɔːr/ или /ˈzɔːr/), EOR, EXOR, , , , , , и . В отрицание XOR является логическая двусмысленность, который возвращает истину, только если два входа совпадают.

Он получил название «исключительное или», потому что значение «или» неоднозначно, когда оба операнды верны; исключительный оператор или исключает тот случай. Иногда это воспринимается как «одно или другое, но не оба сразу». Это можно было бы записать как «А или В, но не А и В».

В более общем плане XOR истинно только тогда, когда истинно нечетное количество входов. Цепочка XOR -а XOR б XOR c XOR d (и так далее) - истинно, если нечетное количество входов истинно, и ложно, если четное количество входов истинно.

Таблица истинности

Аргументы слева объединены XOR. Это двоичный Матрица Уолша (ср. Код Адамара ).

В таблица истинности из A XOR B показывает, что он выводит истину всякий раз, когда входы отличаются:

Таблица истинности XOR
ВводВывод
АB
000
011
101
110
  • 0, ложь
  • 1, правда

Эквивалентности, исключение и введение

Исключительная дизъюнкция по существу означает «либо одно, но не оба, либо ничего». Другими словами, утверждение верно если и только если одно верно, а другое ложно. Например, если участвуют две лошади, то одна из них выиграет скачку, но не обе. Исключительная дизъюнкция , также обозначается или , можно выразить через логическое соединение ("логическое и", ), дизъюнкция ("логическое или", ), а отрицание () следующим образом:

Исключительная дизъюнкция также можно выразить следующим образом:

Такое представление XOR может оказаться полезным при построении схемы или сети, потому что оно имеет только один работа и небольшое количество и операции. Доказательство этой идентичности приведено ниже:

Иногда полезно написать следующим образом:

или:

Эту эквивалентность можно установить, применяя Законы де Моргана дважды до четвертой строки приведенного выше доказательства.

Исключающее или также эквивалентно отрицанию логическая двусмысленность, по правилам материальной импликации (a материальный условный эквивалентно дизъюнкции отрицания его предшествующий и его последствия) и материальная эквивалентность.

Таким образом, в математической и инженерной нотации мы имеем:

Отношение к современной алгебре

Хотя операторы (соединение ) и (дизъюнкция ) очень полезны в логических системах, они нарушают более обобщаемую структуру следующим образом:

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

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

В частности, если кто-то ассоциирует с 0 и с 1, можно интерпретировать логическую операцию «И» как умножение на и операция "XOR" как дополнение к :

Использование этой основы для описания булевой системы называется алгебраическая нормальная форма.

Эксклюзивное "или" на английском языке

Оксфордский словарь английского языка объясняет «либо ... либо» следующим образом:

Основная функция либои т. д., чтобы подчеркнуть полное безразличие из двух (или более) предметов или курсов ...; но второстепенная функция - подчеркнуть взаимную исключительность = одного из двух, но не обоих одновременно.[3]

Исключающее-или явно заявляет «одно или другое, но не ни то, ни другое». Однако соответствие отображения между формальными Булево операторы и конъюнкции естественного языка далеки от простых или взаимно однозначных, и десятилетиями изучались в лингвистика и аналитическая философия.[нужна цитата ]

Следуя такой интуиции здравого смысла относительно «или», иногда утверждают, что во многих естественных языках английский Включено, слово «или» имеет «исключительный» смысл.[4] В исключительная дизъюнкция пары предложений, (п, q), должно означать, что п правда или q верно, но не то и другое одновременно. Например, можно утверждать, что обычное намерение такого утверждения, как «Вы можете выпить кофе, или вы можете выпить чаю», состоит в том, чтобы оговорить, что точно одно из условий может быть истинным. Конечно, при некоторых обстоятельствах предложение, подобное этому примеру, следует воспринимать как запрещающее возможность принятия обоих вариантов.

В английском языке конструкция «либо ... или» обычно используется для обозначения исключающего или, а «или» обычно используется для включения.[сомнительный ] Но в испанском языке слово «o» (или) может использоваться в форме «п о q"(включительно) или форма" o п о q"(исключительный). Некоторые могут утверждать, что любой двоичный или другой н-арный исключающее "или" истинно тогда и только тогда, когда оно имеет нечетное количество истинных входов (это, однако, не единственное разумное определение; например, цифровые вентили xor с несколькими входами обычно не используют это определение), и что там не является союзом в английском языке, который обладает этим общим свойством. Например, Барретт и Стеннер утверждают в статье 1971 года «Миф об исключительном» или'"(Mind, 80 (317), 116–121), что ни один автор не представил пример английского or-предложения, которое кажется ложным, потому что оба его ввода истинны, и отмахивается от or-предложений, таких как« The light лампочка либо включена, либо выключена "как отражение конкретных фактов о мире, а не природы слова" или ". Тем не менее,"парадокс парикмахера «… Все в городе бреются сами или бреются у парикмахера, который бреет парикмахера? - не было бы парадоксальным, если бы« или »не могло быть исключительным (хотя пурист мог бы сказать, что в формулировке парадокса требуется« либо » ).

Альтернативные символы

Символ, используемый для исключительной дизъюнкции, меняется от одной области приложения к другой и даже зависит от свойств, которые подчеркиваются в данном контексте обсуждения. Помимо аббревиатуры «XOR», также могут быть видны любые из следующих символов:

  • +, знак плюс, который имеет то преимущество, что все обычные алгебраические свойства математических кольца и поля можно использовать без лишних слов; но знак плюс также используется для инклюзивной дизъюнкции в некоторых системах записи; обратите внимание, что исключительная дизъюнкция соответствует дополнение по модулю 2, который имеет следующую таблицу сложения, ясно изоморфный к приведенному выше:
    
000
011
101
110
  • , измененный знак плюса; этот символ также используется в математике для обозначения прямая сумма алгебраических структур
  • J, как в Jpq
  • Инклюзивный символ дизъюнкции (), который каким-либо образом изменен, например
  • ^, то каретка, используется в нескольких языки программирования, такие как C, C ++, C #, D, Ява, Perl, Рубин, PHP и Python, обозначая побитовый Оператор XOR; не используется вне контекста программирования, потому что его слишком легко спутать с другими вариантами использования каретки
  • X-or.svg, иногда пишется как
    • ><
    • >-<
  • =1, в символике IEC

Свойства

Коммутативность: да
        
Venn0110.svg          Venn0110.svg
Ассоциативность: да
        
Венн 0101 0101.svg Венн 0011 1100.svg          Венн 0110 1001.svg          Венн 0110 0110.svg Венн 0000 1111.svg
Распределительность:
Исключительное или не распространяется ни на одну двоичную функцию (даже не на себя), но логическая конъюнкция распределяется по исключительному или. (Соединение и исключающее или образуют операции умножения и сложения поле GF (2), и, как и в любой другой области, они подчиняются закону распределения.)
Идемпотентность: нет
                 
Venn01.svg Venn01.svg          Venn00.svg          Venn01.svg
Монотонность: нет
        
Венн 1011 1011.svg          Венн 1011 1101.svg          Venn 0101 1010.svg Венн 0011 1100.svg
Сохранение правды: нет
Когда все входные данные верны, выход неверен.
        
Venn0001.svg          Venn0110.svg
Сохранение лжи: да
Когда все входы ложны, выход ложен.
        
Venn0110.svg          Venn0111.svg
Спектр Уолша: (2,0,0,−2)
Не-линейность: 0
Функция линейная.

При использовании двоичный значения true (1) и false (0), тогда Эксклюзивный или работает точно так же дополнение по модулю 2.

Информатика

Традиционное символическое представление XOR логический вентиль

Побитовая операция

Нимбер дополнение - это Эксклюзивный или из неотрицательные целые числа в двоичный представление. Это тоже векторное сложение в .

Исключительная дизъюнкция часто используется для побитовых операций. Примеры:

  • 1 исключающее ИЛИ 1 = 0
  • 1 исключающее ИЛИ 0 = 1
  • 0 исключающее ИЛИ 1 = 1
  • 0 исключающее ИЛИ 0 = 0
  • 11102 XOR 10012 = 01112 (это эквивалентно сложению без нести )

Как отмечалось выше, поскольку исключающая дизъюнкция идентична сложению по модулю 2, побитовая исключающая дизъюнкция двух п-битовые строки идентичны стандартному вектору сложения в векторное пространство .

В информатике исключительная дизъюнкция имеет несколько применений:

  • Он сообщает, являются ли два бита неравными.
  • Это необязательный бит-флиппер (решающий ввод выбирает, инвертировать ли ввод данных).
  • Он сообщает, есть ли странный количество 1 бит ( правда если только нечетное число переменных верны).

В логических схемах простой сумматор можно сделать с Ворота XOR для сложения чисел и серии логических элементов И, ИЛИ и НЕ для создания вывода переноса.

На некоторых компьютерных архитектурах более эффективно хранить ноль в регистре, выполняя операцию XOR с самим собой (биты, объединенные с помощью XOR с самими собой, всегда равны нулю) вместо загрузки и сохранения нулевого значения.

В простом пороге активирован нейронные сети для моделирования функции XOR требуется второй уровень, поскольку функция XOR не является линейно разделимой функцией.

Эксклюзивный или иногда используется как простая функция микширования в криптография, например, с одноразовый блокнот или Сеть Фейстеля системы.[нужна цитата ]

Exclusive-or также широко используется в блочных шифрах, таких как AES (Rijndael) или Serpent, и в реализации блочного шифра (CBC, CFB, OFB или CTR).

Точно так же XOR можно использовать для генерации энтропийные бассейны для аппаратные генераторы случайных чисел. Операция XOR сохраняет случайность, что означает, что случайный бит, обработанный XOR с неслучайным битом, приведет к случайному биту. Несколько источников потенциально случайных данных могут быть объединены с помощью XOR, а непредсказуемость вывода гарантированно будет не хуже, чем у лучшего отдельного источника.[5]

XOR используется в RAID 3–6 для создания информации о четности. Например, RAID может «копировать» байты. 100111002 и 011011002 с двух (или более) жестких дисков путем операции XOR только что упомянутых байтов, в результате чего (111100002) и записать его на другой диск. Согласно этому методу, если один из трех жестких дисков потерян, потерянный байт может быть воссоздан путем операции XOR с байтами оставшихся дисков. Например, если диск, содержащий 011011002 потерян, 100111002 и 111100002 можно выполнить XOR для восстановления потерянного байта.[6]

XOR также используется для обнаружения переполнения в результате двоичной арифметической операции со знаком. Если крайний левый оставшийся бит результата не совпадает с бесконечным числом цифр слева, это означает, что произошло переполнение. Выполнение операции XOR для этих двух битов даст «1» в случае переполнения.

XOR можно использовать для замены двух числовых переменных в компьютерах, используя Алгоритм замены XOR; однако это считается скорее любопытством и на практике не поощряется.

Связанные списки XOR использовать свойства XOR для экономии места для представления двусвязный список структуры данных.

В компьютерная графика, Методы рисования на основе XOR часто используются для управления такими элементами, как ограничивающие рамки и курсоры в системах без альфа-каналы или наложения самолетов.

Кодировки

Помимо кодов ASCII, оператор кодируется в U + 22BB XOR (HTML&#8891; · & veebar;) и U + 2295 ОБРАТНЫЙ ПЛЮС (HTML&#8853; · & CirclePlus ;, & oplus;), оба в блоке математические операторы.

Смотрите также

Заметки

  1. ^ Germundsson, Роджер; Вайсштейн, Эрик. "XOR". MathWorld. Wolfram Research. Получено 17 июн 2015.
  2. ^ Крейг, Эдвард, изд. (1998), Энциклопедия философии Рутледж, 10, Тейлор и Фрэнсис, стр. 496, г. ISBN  9780415073103
  3. ^ или, кон.2 (нареч.3) 2a Оксфордский словарь английского языка, второе издание (1989). OED Online.
  4. ^ Дженнингс цитирует многочисленных авторов, утверждающих, что слово «или» имеет исключительный смысл. См. Главу 3, «Первый миф об« Или »»:
    Дженнингс, Р. Э. (1994). Генеалогия дизъюнкции. Нью-Йорк: Издательство Оксфордского университета.
  5. ^ Дэвис, Роберт Б. (28 февраля 2002 г.). «Исключающее ИЛИ (XOR) и аппаратные генераторы случайных чисел» (PDF). Получено 28 августа 2013.
  6. ^ Нобель, Рикард (26 июля 2011 г.). «Как на самом деле работает RAID 5». Получено 23 марта 2017.

внешние ссылки