python: 論理演算を求める関数
備忘録です。
論理演算、、読めば読むほど頭が混乱。。今回は論理演算を求める関数の備忘録です。
pythonで論理演算を求める関数
pythonでもbooleanでデータを表すときにTrueなら1、Falseなら0を使いますが、AかつBやAまたはBを求めるくらいならまだしもAかつBではないくらいからだんだん何を言っているのかわからなくなってきます。。やばい。
下記のサイトでは図で紹介されているのでなんとか頭を整理できました。
自分なりにいろんな記事を引用して文章にまとめたのがこちら
論理積(conjunction)・・・AかつB(A∧B)
※入力値がすべて1の場合に1を出力し、それ以外の場合には0
論理和(disjunction)・・・AまたはB(A∨B)
※入力値のいずれかに1が入力された場合に1を出力し、それ以外の場合には0
否定(Negative)・・・・ではない(¬A)
※入力された値が1なら0に、0なら1に反転
否定論理積(Negative AND)・・AかつBではない(¬(A∧B))
※すべての入力値が1の場合に0を出力し、それ以外の場合には1
否定論理和(Negative OR)・・AまたはBではない(¬(A∨B))
※すべての入力値が0の場合に1を出力し、それ以外の場合には0
排他的論理和(exclusive)・・AまたはBかつAかつBではない((A∨B)∧¬(A∧B))
※入力値が異なる場合に1を出力し、それ以外の場合(入力値が同じとき)には0
含意(implication)・・・(A→B)
※Aが0である場合はBによらず1、Aが1でもBが1である場合は1
同等(equivalence)・・・(A↔︎B)
※A と B の値が一致する場合にのみ 1
今回の命題としては上記の論理演算を関数で求めるというものです。operationに上記の演算の種類を入れて答えを返してくれます。関数内のif文はコメントを式に表したものになります。