質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
システムアーキテクト(資格)

システムアーキテクト試験 (SA)は、IPA 独立行政法人 情報処理推進機構の実施している国家資格です。

Q&A

解決済

1回答

1094閲覧

ブール演算についての質問(先日と似ています)

ruby_11

総合スコア37

システムアーキテクト(資格)

システムアーキテクト試験 (SA)は、IPA 独立行政法人 情報処理推進機構の実施している国家資格です。

0グッド

0クリップ

投稿2017/08/30 10:25

先日も同じような質問をさせていただきました。

今回は、Xorについてです。

XorをNot, And, Orで、また、Nandのみで表現することはできるのですが、ある参考書では、
XorをAnd, Nand, Orで表現しています。

例えば、-AB + A-B が -(AB)*(A+B)と表現されています。

右辺から左辺へは理解できるのですが、左辺から右辺への変換が理解できません。

-AB + A-Bを自分なりに証明した結果です。

(Not A And B) Or (A And Not B)

= Not Not (Not A And B) Or Not Not (A And Not B)

= Not (Not A And B) Nand Not (A And Not B)

= (Not A Nand B) Nand (A Nand Not B)

この式が、なぜ

(A Nand B) And (A Or B)

になるのか教えていただけないでしょうか?

ベン図で解いてみると理解できるのですが、式としての証明が理解できません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

bool演算ですね
AND を *と表します
OR を + と表します
NOT を !と表します

(!ab) + (a!b) //命題
!!((!ab) + (a!b)) // 否定の否定は等しい
! (!(!ab)!(a*!b)) // 否定のひとつをド・モルガンの定理で展開
!((a+!b )(!a+b)) // さらにド・モルガンで展開
! ( a * !a + a
b + !a*!b + !bb ) //積和系になった!
! ( 0 + a
b + !a*!b + 0 ) // a*!aは常にfalse(0)になる
! ( ab + !(a+b) ) // 積和系で0の項は無視 !a!bを2重否定してド・モルガンの定理
!(ab) * (a+b) // 最後の否定をド・モルガンで展開
!(a
b) は NAND なので
命題 = (A NAND B) AND ( A OR B )
//証明終了

投稿2017/08/30 13:13

編集2017/08/31 02:14
Tak1016

総合スコア1408

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問