| 排他的論理和 | |
|---|---|
| 真理値表 | |
| 論理ゲート | |
| 正規形 | |
| 分離的 | |
| 接続詞 | |
| ジェガルキン多項式 | |
| ポストの格子 | |
| 0 保存 | はい |
| 1-保存 | いいえ |
| 単調 | いいえ |
| アフィン | はい |
| 自己双対 | いいえ |

排他的論理和、排他的論理和、排他的交替、論理的非同値、または論理的不等号は、否定が論理双条件である論理演算子です。2つの入力がある場合、入力が異なる場合(1つが真で、1つが偽)に限り、XORは真になります。複数の入力がある場合、真の入力の数が奇数の場合に限り、XORは真になります。[1]
両方のオペランドが true の場合、「または」の意味があいまいになるため、「排他的論理和」という名前が付けられています。XOR では、そのようなケースは除外されます。XOR を非公式に記述する方法としては、「どちらか一方であるが両方ではない」、「どちらか一方」、「A または B であるが、A と B ではない」などがあります。
これは、前置演算子[2] : 16 と、中置演算子XOR ( / ˌ ɛ k s ˈ ɔː r /、/ ˌ ɛ k s ˈ ɔː /、/ ˈ k s ɔː r /または/ ˈ k s ɔː / )、EOR、EXOR、、、、⩛、、、、およびによって表されます。
意味

の真理値表は、入力が異なる場合は常に true を出力することを示しています。
同値性、排除、導入
排他的選言は、本質的には「どちらか一方であり、両方でもどちらでもない」という意味です。言い換えると、文が真となるのは、一方が真で他方が偽の場合のみです。たとえば、2 頭の馬がレースをしている場合、2 頭のうち 1 頭がレースに勝ちますが、両方が勝つことはありません。排他的選言 は、または とも表記され、次のように論理積(「論理的 and」、)、選言(「論理的 or」、)、および否定( ) で表すことができます。
排他的論理和は次のように表現することもできます。
この XOR の表現は、演算が 1 つしかなく、 and演算の数が少ないため、回路やネットワークを構築するときに便利です。この同一性の証明を以下に示します。
次のように 書くと便利な場合があります。
または:
この同等性は、上記の証明の 4 行目に ド・モルガンの法則を2 回適用することによって証明できます。
排他的論理和は、物質的含意の規則 (物質的条件は、その前項と結果項の否定の論理和に等しい) と物質的同値性により、論理的な二条件式の否定にも等しい。
要約すると、数学的表記と工学的表記では次のようになります。
演算子の否定
ド・モルガンの法則の精神を適用すると、次のようになります。
現代代数学との関係
演算子 (論理積) と(論理和) は論理システムでは非常に便利ですが、次のように、より一般化可能な構造を実現できません。
系と はモノイドですが、どちらも群 ではありません。このため、残念ながら、これら 2 つの系を数学的な環などのより大きな構造に組み合わせることはできません。
ただし、排他的論理和を使用するシステムはアーベル群です。要素上の演算子との組み合わせにより、よく知られている2 要素体が生成されます。 この体は、システムで取得できる任意のロジックを表すことができ、さらに、体に対する代数解析ツールの豊富な機能という利点もあります。
より具体的には、 を0 に、 を1 に関連付けると、論理「AND」演算を の乗算として解釈でき、 「XOR」演算を の加算として解釈できます。
この基底を用いてブール関数をの多項式として記述することを関数の代数正規形 と呼ぶ。[3]
排他的または自然言語
分離は自然言語では排他的に理解されることが多い。英語では、分離語「または」は、特に助詞「どちらか」と一緒に使用される場合、排他的に理解されることが多い。以下の英語の例は、会話では通常、メアリーが歌手でも詩人でもないことを意味していると理解される。[4] [5]
- 1. メアリーは歌手か詩人です。
しかし、選言は「どちらか」と組み合わせても包括的に理解できます。たとえば、以下の最初の例は、「どちらか」が両方の選言が真であるという明確な声明と組み合わせて適切に使用できることを示しています。2番目の例は、排他的推論が下向きの含意のコンテキストでは消えてしまうことを示しています。この例で選言が排他的であると理解された場合、一部の人々が米と豆の両方を食べた可能性が残ります。[4]
- 2. メアリーは歌手か詩人、あるいはその両方です。
- 3. 誰も米も豆も食べませんでした。
上記のような例から、排他性推論を包括的意味論に基づいて計算される実用的な 会話的含意として分析する動機が生まれました。含意は通常は取り消し可能であり、計算が量の最大性に依存する場合は下向き含意の文脈では発生しません。しかし、一部の研究者は排他性を真正な意味的含意として扱い、それを検証する非古典的な論理を提案しました。[4]
英語の「または」のこの動作は他の言語にも見られます。しかし、多くの言語には、フランス語の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」は「包括的論理和」を意味し、ペアノは包含的論理和として使用していることに注目してください。
- 1936 年にイズライル・ソロモノヴィチ・グラドシュテイン (Израиль Соломонович Градлытейн) によって使用されました。[12] : 76
- は1938年にクロード・シャノンによって使われた。 [13]シャノンは1904年にエドワード・ヴァーミリー・ハンティントンから排他的選言としてこの記号を借用した。 [14]ハンティントンは1890年にゴットフリート・ヴィルヘルム・ライプニッツからこの記号を借用した(オリジナルの日付ははっきりしていないが、1685年以降に書かれたことはほぼ確実で、1890年は出版年である)。[15]ハンティントンは1904年、ライプニッツは1890年ともにこの記号を代数演算に使用した。さらに、ハンティントンは1904年にこの記号を包含的選言(論理和)としても使用し、1933年には包含的選言として使用した。[16]
- は、同値性の否定も表し、1944年にアロンゾ・チャーチによって使用された。[17]
- (前置演算子、として)は、1949 年にJózef Maria Bocheńskiによって使用されました。 [2] : 16 誰か[18]は、 Jan Łukasiewiczが排他的選言に を最初に使用したと誤解している可能性があります(この間違いは広く広まっているようです)が、Łukasiewicz は 1929 年[19]にも他の著作にもそのような使用をしていませんでした。実際、1949 年に Bocheński は、古典論理の16 個の二項接続詞すべてに名前を付けるポーランド記法のシステムを導入しました。これは、1929 年の Łukasiewicz の記法の互換性のある拡張であり、排他的選言に が初めて登場した記法です。 Bocheński が を排他的選言として使用することは、ポーランド語の「排他的論理和」を意味する「alternatywa rozłączna」とは関係がなく、偶然の産物です。1949 年の本の 16 ページの表を参照してください。
- ^キャレットは、 C [20] をはじめ、C++、C#、D、Java、Perl、Ruby、PHP、Pythonなど、さまざまなプログラミング言語でビット排他的論理和演算子を表すために使用されています。
- 2つの集合との対称差は、それらの要素ごとの排他的論理和として解釈することができ、 、 、 などと様々に表記されてきた。[ 21 ]
プロパティ
- 交換性: はい
- 関連性: はい
- 分配性:
- 排他的論理和はどの二項関数でも分配できません(それ自体でも分配できません)が、論理積は排他的論理和で分配できます。 (論理積と排他的論理和は、体GF(2)の乗算と加算の演算を形成し、任意の体と同様に分配法則に従います。)
- 冪等性: いいえ
- 単調性:なし
- 真実の保存: いいえ
- すべての入力が true の場合、出力は true ではありません。
- 虚偽の保存: はい
- すべての入力が false の場合、出力は false になります。
- ウォルシュスペクトル: (2,0,0,−2)
- 非線形性: 0
- 関数は線形です。
- 退縮:
- 指定された 1 つの入力を他の入力の関数として排他的または逆関数にすることは、反転または自己逆関数です。これを 2 回適用すると、変数入力は変更されません。
true (1) と false (0) にバイナリ値を使用する場合、排他的論理和は2 を法とする加算と まったく同じように機能します。
コンピュータサイエンス

ビット演算

排他的論理和はビット演算によく使用されます。例:
- 1 排他的論理和 1 = 0
- 1 排他的論理和 0 = 1
- 0 排他的論理和 1 = 1
- 0 排他的論理和 0 = 0
- 1110 2 XOR 1001 2 = 0111 2 (これは繰り上がりなしの加算に相当します)
上で述べたように、排他的論理和は 2 を法とする加算と同じであるため、2 つのnビット文字列のビットごとの排他的論理和は、ベクトル空間 における加算の標準ベクトルと同じになります。
コンピュータ サイエンスでは、排他的論理和にはいくつかの用途があります。
- 2 つのビットが等しくないかどうかを判断します。
- これは制御可能なビットフリッパーです (制御入力によって、データ入力を反転するかどうかが選択されます)。
- これは、1 ビットが奇数個あるかどうかを示します( は、変数の数が奇数個の場合にのみ真になります)。これは、パリティ関数によって返されるパリティ ビットに等しくなります。
論理回路では、数値を加算するXOR ゲートと、桁上げ出力を作成する一連の AND、OR、NOT ゲートを使用して、 単純な加算器を作成できます。
一部のコンピュータ アーキテクチャでは、値 0 をロードして格納するよりも、レジスタを自身と XOR してレジスタにゼロを格納する方が効率的です (自身と XOR されたビットは常にゼロになります)。
暗号化では、XOR は、ワンタイム パッドやFeistel ネットワークシステムなどの単純な自己逆混合関数として使用されることがあります。 [引用が必要] XOR は、AES (Rijndael) や Serpent などのブロック暗号や、ブロック暗号の実装 (CBC、CFB、OFB、CTR) でも頻繁に使用されます。
単純な閾値活性化人工ニューラル ネットワークでは、XOR は線形に分離可能な関数ではないため、XOR 関数をモデル化するには 2 番目のレイヤーが必要です。
同様に、XORはハードウェア乱数ジェネレータのエントロピープールの生成にも使用できます。XOR演算はランダム性を保持します。つまり、ランダムビットを非ランダムビットとXOR演算すると、ランダムビットが生成されます。XORを使用すると、ランダムな可能性のある複数のデータソースを組み合わせることができ、出力の予測不可能性は、少なくとも個々のソースの最良のものと同等であることが保証されます。[22]
XOR はRAID 3~6 でパリティ情報を作成するために使用されます。たとえば、RAID は 2 台 (またはそれ以上) のハード ドライブからバイト10011100 2と01101100 2を「バックアップ」できます。これは、前述のバイトを XOR して ( 11110000 2 ) を作成し、それを別のドライブに書き込むことによって行います。この方法では、3 台のハード ドライブのいずれかが失われた場合、残りのドライブのバイトを XOR することで失われたバイトを再作成できます。たとえば、01101100 2 を含むドライブが失われた場合、10011100 2と11110000 2を XOR して失われたバイトを回復できます。[23]
XOR は、符号付き 2 進算術演算の結果のオーバーフローを検出するためにも使用されます。結果の左端の保持ビットが左側の無限桁数と同じでない場合は、オーバーフローが発生したことを意味します。オーバーフローが発生した場合、これら 2 つのビットを XOR すると「1」になります。
XOR は、XOR スワップ アルゴリズムを使用してコンピューター内の 2 つの数値変数を交換するために使用できます。ただし、これはむしろ好奇心によるものであり、実際には推奨されていません。
XOR リンク リストは、二重にリンクされたリストのデータ構造を表すためのスペースを節約するために XOR プロパティを活用します。
コンピュータ グラフィックスでは、アルファ チャネルやオーバーレイ プレーンのないシステム上の境界ボックスやカーソルなどの項目を管理するために、XOR ベースの描画方法がよく使用されます。
エンコーディング
これは、 LaTeXベースのマークダウン ( )\nleftrightarrowでは「非左右矢印」( ) とも呼ばれます。ASCII コードとは別に、この演算子は、ブロック数学演算子ではU+22BB ⊻ XOR ( ⊻ ) およびU+2295 ⊕ CIRCLED PLUS ( ⊕, ⊕ )にエンコードされます。
参照
注記
- ^ Germundsson, Roger; Weisstein, Eric. 「 XOR 」。MathWorld。Wolfram Research 。 2015年6月17日閲覧。
- ^ ab ボチェンスキー、JM (1949)。 Précis de logique mathématique (PDF) (フランス語)。オランダ:FGクルーンダー、ブッスム、ペイバス。Bocheński, JM (1959)として翻訳。A Precis of Mathematical Logic 。Bird , O.翻訳。ドルドレヒト、オランダ:D. Reidel Publishing Company。doi :10.1007/978-94-017-0592-9。ISBN 978-90-481-8329-6。
- ^ Joux, Antoine (2009). 「9.2: ブール関数の代数正規形」.アルゴリズム暗号解析. CRC Press. pp. 285–286. ISBN 9781420070033。
- ^ abcd Aloni, Maria (2016). 「Disjunction」. Zalta, Edward N. (ed.).スタンフォード哲学百科事典(2016年冬季版)。スタンフォード大学形而上学研究室。 2020年9月3日閲覧。
- ^ ジェニングスは、「または」という単語には排他的な意味があると述べる多数の著者の言葉を引用している。第 3 章「「または」の最初の神話」を参照:ジェニングス、RE (1994)。分離の系譜。ニューヨーク: オックスフォード大学出版局。
- ^ ab ブール、G. (1847)。『論理の数学的分析、演繹的推論の微積分に向けた試論』ケンブリッジ/ロンドン:マクミラン、バークレー、マクミラン/ジョージ・ベル。p. 17。
- ^ エンダートン、H. (2001) [1972]。論理学への数学的入門(第2版)。サンディエゴ、ニューヨーク、ボストン、ロンドン、トロント、シドニー、東京:ハーコートサイエンスアンドテクノロジーカンパニー。p.51。
- ^ Rautenberg, W. (2010) [2006].数理論理学の簡潔な入門(第3版). ニューヨーク、ドルドレヒト、ハイデルベルク、ロンドン:シュプリンガー。p. 3。
- ^ Ladd, Christine (1883)。「論理の代数について」。Peirce, CS (編)。ジョンズ・ホプキンス大学会員による論理学研究。ボストン: Little, Brown & Company。pp. 17–71。
- ^ シュレーダー、E. (1890)。Vorlesungen über die Algebra der Logik (Exakte Logik)、Erster Band (ドイツ語)。ライプツィヒ:ドリュック・ウント・フェルラークBG・トイブナー。2000年にThoemmes Pressから再版されました。
- ^ ペアノ、G. (1894)。論理数学の表記法。数学の公式の紹介。トリノ:フラテッリ・ボクナ。 Peano, G. (1958)に再版。オペレ スケルテ、第 2 巻。ローマ:エディツィオーニ・クレモネーゼ。 123–176ページ。
- ^ ГРАДШТЕЙН、И。 С. (1959年)[1936年]。 ПРЯМАЯ И ОБРАТНАЯ ТЕОРЕМЫ: ЭЛЕМЕНТЫ АЛГЕБРЫ ЛОГИКИ (ロシア語) (3 版)。 МОСКВА: ГОСУДАРСТВЕННОЕ ИЗДАТЕЛЬСТВО ФИЗИКа-МАТЕМАТИЧЕСКОЙ ЛИТЕРАТУРЫ。Gradshtein, I.S. (1963)として翻訳。直接定理と逆定理: 記号論理学の要素。Boddington, T. による翻訳。オックスフォード、ロンドン、ニューヨーク、パリ: Pergamon Press。
- ^ Shannon, CE (1938). 「リレーおよびスイッチング回路の記号解析」(PDF) .米国電気学会誌. 57 (12): 713–723. doi :10.1109/T-AIEE.1938.5057767. hdl : 1721.1/11173 . S2CID 51638483.
- ^ ハンティントン、EV (1904)。「論理代数のための独立公準集合」。アメリカ数学会誌。5 (3): 288–309。doi :10.1090/ S0002-9947-1904-1500675-4。
- ^ ライプニッツ、GW (1890) [16??/17??]。ゲルハルト、CI (編)。 Die philosophischen Schriften、Siebter Band (ドイツ語)。ベルリン:ワイドマン。 p. 237 . 2023 年7 月 7 日に取得。
- ^ハンティントン、EV(1933)。「ホワイトヘッドとラッセルのプリンキピア ・マセマティカを特に参考にした、論理代数のための新しい独立公準のセット」アメリカ数学会誌。35 (1):274–304。
- ^ Church, A. (1996) [1944].数学論理学入門. ニュージャージー州: プリンストン大学出版局. p. 37.
- ^ クレイグ、エドワード (1998)。ラウトレッジ哲学百科事典、第8巻。テイラー&フランシス。p.496。ISBN 978-0-41507310-3。
- ^ Łukasiewicz、1 月(1929)。Elementy logiki matematycznej [数学的論理の要素] (ポーランド語) (第 1 版)。ワルシャワ、ポーランド: Państwowe Wydawnictwo Naukowe。
- ^ Kernighan, Brian W. ; Ritchie, Dennis M. (1978). 「2.9: ビット論理演算子」。プログラミング言語 C。Prentice-Hall。pp. 44–46。
- ^ Weisstein, Eric W.「対称差」。MathWorld。
- ^ Davies, Robert B (2002 年 2 月 28 日). 「排他的論理和 (XOR) とハードウェア乱数ジェネレーター」(PDF) 。2013年8 月 28 日閲覧。
- ^ Nobel, Rickard (2011 年 7 月 26 日). 「RAID 5 の実際の動作方法」. 2017 年3 月 23 日閲覧。
外部リンク
- XOR について
- XOR 特性の証明と XOR の応用、CS103: コンピューティングの数学的基礎、スタンフォード大学
