- ベストアンサー
論理式の簡略化
- 論理式の簡略化についての質問です。
- 公式を用いて論理式を簡略化しようとしましたが、答えが違ってしまいます。
- 計算順序に問題があるのでしょうか?回答をお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 a#1の補足に書かれた演算の優先順位が間違っているようです。 >(3)優先度は()>NOT>AND>OR>XOR>IMP>EQVです。 最後の2つの優先順位が逆です。 正しくは参考URLにあるように ()>NOT>AND>OR>XOR>EQV>IMP…(◆) です。 最初の質問の式の間違い箇所について 論理演算の優先順位(◆)に違反して計算しています。 >=A xor notB xor B and A「xorの結合則」 >=A xor True and A 演算の優先度は「notB xor B」より「B and A」の優先度の方が高いので 「notB xor B=True」の演算はできないので、ここで演算が間違った。 > =not A xor B xor B and A > =not A xor F and A ここでも演算の優先度の高い「B and A」を無視して 演算の優先度の低い「B xor B=False」の演算を先に演算して、 間違った。 A#1の補足の論理式の簡単化について 論理式=False になります。 簡単のために、True=1,False=0で表し、(A,B)の全ての組み合わせに対して与えられた論理式を計算してみると (A,B)=(0,0)の時 ((B eqv A) imp ((B eqv A)xor B and A) or B)xor(B and A and((B eqv A)xor B and A)imp B and A and ((B eqv A) xor B and A)) =( 1 imp ( 1 xor 0 ) or 0)xor( 0 and( 1 xor 0 )imp 0 and ( 1 xor 0 )) =( 1 imp 1 or 0)xor( 0 and 1 imp 0 and 1 ) =( 1 imp 1 )xor( 0 imp 0 ) = 1 xor 1 = 0 (A,B)=(0,1)の時 ((B eqv A) imp ((B eqv A)xor B and A) or B)xor(B and A and((B eqv A)xor B and A)imp B and A and ((B eqv A) xor B and A)) =( 0 imp ( 0 xor 0 ) or 1)xor( 0 and( 0 xor 0 )imp 0 and ( 0 xor 0 )) =( 0 imp 0 or 1)xor( 0 and 0 imp 0 and 0 ) =( 0 imp 1 )xor( 0 imp 0 ) = 1 xor 1 = 0 (A,B)=(1,1)の時 ((B eqv A) imp ((B eqv A)xor B and A) or B)xor(B and A and((B eqv A)xor B and A)imp B and A and ((B eqv A) xor B and A)) =( 1 imp ( 1 xor 1 ) or 1)xor( 1 and( 1 xor 1 )imp 1 and ( 1 xor 1 )) =( 1 imp 0 or 1)xor( 1 and 0 imp 1 and 0 ) =( 1 imp 1 )xor( 0 imp 0 ) = 1 xor 1 = 0 (A,B)=(1,0)の時 ((B eqv A) imp ((B eqv A)xor B and A) or B)xor(B and A and((B eqv A)xor B and A)imp B and A and ((B eqv A) xor B and A)) =( 0 imp ( 0 xor 0 ) or 0)xor( 0 and( 0 xor 0 )imp 0 and ( 0 xor 0 )) =( 0 imp 0 or 0)xor( 0 and 0 imp 0 and 0 ) =( 0 imp 0 )xor( 0 imp 0 ) = 1 xor 1 = 0 となってカルノー図(2次元真理値表)を描くまでもなく 全てのA,Bの組合せに対して、与えられた論理式は 全て「0(=False)」になる結果が得られた。
その他の回答 (1)
- info22
- ベストアンサー率55% (2225/4034)
カルノー図を書いて最簡形を求めるのが手っ取り早いですね。 問題に疑問点がありますので補足して下さい。 (1) >(B eqv A) xor B and A この式は (B eqv A) xor (B and A) ((B eqv A) xor B) and A のどちらですか? (2)A eqv B の「eqv」は古い記述ですが「一致論理」の演算子ですか? (3) 演算の優先度の確認 「()」>「not」>「and,xor,eqv」>「or」 でいいですか?
補足
回答ありがとうございます。 (1)本当も結構ながい問題でこの部分だけ3回でてくるのでこの部分だけ 理解できれば後はできそうだったので短く書いてしまいました@@; 本来は ((B eqv A) imp ((B eqv A)xor B and A) or B)xor(B and A and((B eqv A)xor B and A)imp B and A and ((B eqv A) xor B and A))です。 (2)古い記述でしたか・・・一致論理でたぶんあっていると思います。 equivalent(略でEQV、同値)と書いていましたので。 (3)優先度は()>NOT>AND>OR>XOR>IMP>EQVです。
お礼
回答ありがとうございます。 順序に気をつけてやるとなんとかできました! 値を直接代入してやる方法もあったのですね、大変参考になりました! 本当にありがとうございました<(_ _)>