第79回【Python】NAND 演算の基本、NOR 演算の基本、XNOR 演算の基本
現在取り組んでいるのは、paiza ラーニング問題集「論理演算メニュー」になります。
はじめに
猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。
Python をゼロから勉強してみよう、のコーナー 79 回目です。
キャンプ場でも、勉強しています。LeoLuna(夫婦)の場合、キャンプの主目的が焚火で普段作らないものに挑戦しよう(夕食)なので、それ以外の時間は読書をしたり勉強をしたり、たまには昼寝をしたり、まったり過ごします。
それでは、今日も頑張ってみようと思います。
NAND 演算の基本
0 または 1 の整数 A と B が与えられます。 A NAND B
の結果を出力してください。
ここで、 NAND 演算とは、以下の表にしたがって算出する論理演算のことを指します。
入力1 | 入力2 | 出力 |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
すべてのテストケースにおいて、以下の条件をみたします。
・ A, B は 0 または 1
0 0
NAND は、Not And の略なので、論理積の否定を書いてあげれば OK !
Python
A,B = map(int,input().split())
print(int(not(A and B)))
Python の not は、bool 型になってしまうことに注意。
VBA
AB = Split(Cells(1, 1), " ")
A = CBool(AB(0))
B = CBool(AB(1))
Debug.Print CInt(Not (A And B)) * -1
NOR 演算の基本
0 または 1 の整数 A と B が与えられます。 A NOR B
の結果を出力してください。
ここで、 NOR 演算とは、以下の表にしたがって算出する論理演算のことを指します。
入力1 | 入力2 | 出力 |
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
すべてのテストケースにおいて、以下の条件をみたします。
・ A, B は 0 または 1
0 0
NOR は、Not Or の略なので、論理和の否定を書いてあげれば OK !
Python
A,B = map(int,input().split())
print(int(not(A or B)))
こちらも、Python の not は、bool 型になってしまうことに注意。
VBA
AB = Split(Cells(1, 1), " ")
A = CBool(AB(0))
B = CBool(AB(1))
Debug.Print CInt(Not (A Or B)) * -1
XNOR 演算の基本
0 または 1 の整数 A と B が与えられます。 A XNOR B
の結果を出力してください。 ここで、 XNOR 演算とは、以下の表にしたがって算出する論理演算のことを指します。
入力1 | 入力2 | 出力 |
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
すべてのテストケースにおいて、以下の条件をみたします。
・ A, B は 0 または 1
0 0
XNOR は、Not Xor の略なので、排他的論理和の否定を書いてあげれば OK !
Python
A,B = map(int,input().split())
print(int(not(A ^ B)))
こちらも、Python の not は、bool 型になってしまうことに注意。
VBA
AB = Split(Cells(1, 1), " ")
A = CBool(AB(0))
B = CBool(AB(1))
Debug.Print CInt(Not (A Xor B)) * -1
最後に
Python の場合、not は bool 型であることを頭に入れておこう。多くの場合は、True or False が分かればいいのだけれど、結果を掛け算して False の場合は 0 という値を返す、みたいなことをするときには注意が必要かもしれない。
not(A and B) * 100 の結果は、True か False しか出力されない。
int(not(A and B) * 100) の結果は、1 か 0 しか出力されない。
int(not(A and B)) * 100 の結果は、100 か 0 が出力される。
よく考えると当然のことだけれど、他の言語の癖でさらりと書いてしまうと、罠になる可能性がある。
引き続き、よろしくお願いいたします!
ディスカッション
コメント一覧
まだ、コメントがありません