Xor 演算子とパズル
Excel マクロに触れて初めて知ったものの一つに「Xor演算子」がある。
日本語では「排他的論理和」と言う。解説はこちら。
ja.wikipedia.org
二つの値を比較する演算子で、具体例は以下のとおり。
- 0 Xor 0 = False
- 0 Xor 1 = True
- 1 Xor 0 = True
- 1 Xor 1 = False
最初は「何に使うの?」と思ったが、身近な例として下記を紹介され納得。
まずは、階段の上と下にある電気のスイッチを想像して欲しい。
- 一階と二階のスイッチ「切」⇒ 消灯
- 一階のスイッチを「入」 ⇒ 点灯
- そのまま二階に上がってスイッチ「入」 ⇒ 消灯
- 一階に下りてスイッチ「切」 ⇒ 点灯
ワークシート関数にも準備されており、このように確認することができる。
ところで以前、算数パズルを解いていて、ひょっとしてこの排他的論理和がカギなのでは?と偶然に閃いた問題があった。
例えば
- 白 ⇒ 0
- 緑 ⇒ 1
とすると、先程の問題はこのように置き換わる。
Xor関数で結果を求めると、このようになる。
条件付き書式で白と緑を設定すれば、さらに分かり易い。
勿論この演算子や関数を知らずとも、法則を見つけることは充分に可能だ。しかし私は、その法則の名前が「排他的論理和」であることを知っていたため、そのとき確信を持って正答を求めることが出来たわけで。
今日は、いつどこで何が、どんな形で役立つか分からない、というお話でした。
参考まで。