対称差と排他的論理和
こんにちは!最近技術書を買いすぎて読み切れず困ってるアイサット社員Tです。
色々勉強している中で気になったことがあったので今回記事を書いてみました。
Pythonの資格試験の勉強をしていたところ、集合のところで「対称差」というものが出てきました。こんな感じです。
a = {1, 2, 3}
b = {3, 4, 5}
a ^ b
→{1, 2, 4, 5}
ベン図でいうとこんな感じですね。

どこかで見たような…と、これは排他的論理和のことでは?XORですね。
ここで疑問なのが、対称差と排他的論理和、示す部分は同じなのになぜ言葉が違うのか、言い方が違うだけなのか、気になっておりました。
調べてみるとどうやら「考え方は同じだけれども、対象が違う」のようです。
どちらも上記のベン図の示す通り、お互いの集合の中で、片方のみに存在しているものを指し示しています。しかし、排他的論理和は対象が論理演算、対称差は集合になるのです。つまり排他的論理和は真偽値やビットを返すのに対し、対称差は集合を返します。
なるほど、確かにそうだなと言われて納得です。TrueかFalseを返すのか、{1,2,4,5}みたいな集合を返すのか。全然違いますね。
勉強していくと考え方は理解していても、ぱっと説明できないことが整理されるのがいいですね。
資格は取ることに意味があるだけでなく、勉強のきっかけになるのがいいことだと思います。業務にも役立てていきたいですね。

