妹、XORの存在意義がわからない
妹「ところで前にちらっと出てきたXORなんだけど、あれって何のために存在してるの? あ、その前に読み方が知りたいんだけど」
「うーん、エクスオア……かなあ」
妹「アルファベットのやつは全部に振り仮名振っといて欲しいと……まあいいや、それでこれ一体何に使うものなの?」
「ANDとORはわかるの?」
妹「わかると言えばわかる」
「その2つと同じ論理演算の仲間なんだけど、今だったらフラグって言うのがわかりやすいかな、両方のフラグが立ってないと駄目なのがAND、どっちか片方だけでいいのがOR、どちらか片方だけじゃないと駄目なのがXOR」
妹「そうするとXORとORは同じような? 違うか、両方のフラグが立ってる時はORはOKだけど、XORは駄目だ」
「そう、両方のフラグが立ってちゃ駄目ってのが違う」
妹「でもやっぱり使い道がわからん…」
「例えばこう……左の村か右の村か、どちらかは助けると褒美がもらえるけど、両方助けてしまうと双方から裏切り者扱いされて駄目みたいな」
妹「そういうイベントの時に使うの?」
「使わないだろうね。だって同じ失敗扱いにするにしても、両方助けた時と、両方助けなかった時と、メッセージぐらいは変えるだろうから。ORやANDを組み合わせて表現した方がわかりやすいし」
妹「じゃあこれ要らないんじゃん!」
「昔は色んな計算を速くするために使われてたんだけど、最近はそういうのが必要な計算があんまりなくなったから……でもXORと同じ事を他のノードで代用するとかならず複数のノードが必要だし、複雑な思考ルーチンとかパズルのルール処理とかでは出番あるかも」
妹「うーん、当分出番なさそう……」