アダーとセレクタ

http://d.hatena.ne.jp/hyuki/20081129#mathの「ランチのご注文のお品は奇数個ですね - 結城浩はてな日記」で紹介されていたエントリーについて。排他的論理和結合法則を満たすかどうかについて確認しています。

おお。まんなかのx∩y∩zも入るのですか? となると、排反的選言の「または」を採用している喫茶店でランチのドリンクが3種類になれば、すべてのドリンクを頼むという選択肢も出てくるのだろうか…!?

http://math.artet.net/?eid=984588


3つの排他的論理和が使われるものとしては、二進数の計算があります。2つの二進数を足す場合でも、前の桁からの桁上がりを考慮する必要があるので3つの数字の和になります。この3つの数字の和を計算するのに、排他的倫理和を使います。桁上がりの計算をするのには倫理積も使います。


論理学やブール代数としてはそれで良いとして、喫茶店などの「ランチには、コーヒーか紅茶、またはオレンジジュースが付きます。」という場合には違う考え方をする必要があります。2種類の場合については、すでに検討されていてその結果として排他的論理和が登場しています。

 たとえば喫茶店で「ランチには、コーヒーまたは紅茶がつきます」と言われ、コーヒーと紅茶のどちらか一方しかつけてもらえないのならば、この場合の“または”は「どちらか一方のみ」の意味になります。

 このような“または”を「排反的選言(排他的選言)」というそうです。なお、ランチのコーヒー紅茶の話は野矢茂樹『論理学』に書いてあって、登場人物の一人である道元が「非論理的な喫茶店だな.」と言っていて可笑しいのですが、この本の中では排反的選言に▽の記号が当てられ、公認されている記号ではないと断った上で、あらたな真理関数が定義されています。

http://math.artet.net/?eid=979501


2種類からどれかを選ぶ場合の排他的宣言は排他的論理和で良いのですが、3種類からどれか一つを選ぶという排他的宣言の場合は違うものを考える必要がありそうです。二進数の計算の場合を応用して「3種類全部だとキャリーが発生するので追加料金になります。」というのも面白いかと思うのですが、理解してもらえる確率は低そうです。ちなみにキャリーというのは桁上がりのことです。


複数の物からどれか一つを選ぶという行為は、喫茶店以外でもなされます。オーディオアンプの入力のセレクトなどもどれか一つを選んでいます。電子回路でのセレクタも存在するし、ブール代数や論理式での表記も可能です。
3つの入力をA、B、Cとして、選択するための信号をX、Yとすれば次の通りです。


(A∧¬X∧¬Y)∨(B∧X∧¬Y)∨(C∧¬X∧Y)


この式の場合だとXとYがどちらも0のときにAが選択され、Xが1でYが0のときにBが、Xが0でYが1のときにCが選択されます。XとYがどちらも1のときは何も選択されず0が出力されます。


茶店の場合だと、コーヒーは00、紅茶は01、オレンジジュースは10のように番号をふって、番号の選択によって対応する飲み物が選ばれると考えるといいかもしれません。