プロが教える店舗&オフィスのセキュリティ対策術

XOR をNAND素子のみを用いて表したいのですが、5個であらわすことはできたのですが、4個で表すことはできるのでしょうか??
唐突な質問ですみません。

A 回答 (5件)

#1,#3です。


A#3の補足質問について

2つの式が等しい事を示す方法は次の2通りあります。

1)論理式をブール代数のド・モルガンの公式(定理)を使って簡単化して、ともに
(A∧(¬B))∨((¬A)∧B)
となることを示す方法
この場合、演算順序は優先の高い順に行います。
論理演算子の優先度
[1] 括弧、内部の括弧の方が優先度が高い
 [2] not(¬)
[3] and (∧)
 [4] or (∨)

2)真理値表が同一(XORの真理値表)になることを示す方法
 すなわち、(A,B)=(0,0),(0,1),(1,0),(1,1)の4つの組合せに対して
 2式が等しくなる事を示せばいい。なお、0=L,1=Hのことです。

1)の方法では

> ¬((¬(A∧(¬(B∧B))))∧(¬(B∧(¬(A∧A)))))
=¬((¬(A∧(¬B)))∧(¬(B∧(¬A))))
=(¬(¬(A∧(¬B))))∨(¬(¬(B∧(¬A))))
=(A∧(¬B))∨(B∧(¬A))

> ¬((¬(A∧( ¬(A∧B) )))∧(¬(B∧(¬(A∧B)))))
=¬((¬(A∧( (¬A)∨(¬B) )))∧(¬(B∧( (¬A)∨(¬B) ))))
=¬((¬(A∧(¬B)))∧(¬(B∧(¬A))))
=(¬(¬(A∧(¬B))))∨(¬(¬(B∧(¬A))))
=(A∧(¬B))∨(B∧(¬A))
これで同じXORの論理式になったね。

2)の方法は自分でやってみてください。
    • good
    • 0
この回答へのお礼

理解できました!
本当にありがとうございました

お礼日時:2008/06/25 19:12

A xor B = { A nand (A nand B) } nand { B nand (A nand B) }


と書くと、nand が5個に見えてしまいますね。
A xor B = (A nand C) nand (B nand C), C = A nand B
の意味なんだろうけれど、一本の式では書きにくい。
回路図で書いたほうが見やすいんでしょうが。

ところで、入力の A と B を
(A nand C) nand (B nand C) と A nand B のそれぞれへ
分線して結線するために、アンプを使わなくてよいのでしょうか?
アンプを nand で構成すると、nand は計6個になりますが…
    • good
    • 1

#1です。


A#1で回答した次の論理式が4NAND構成のXORの論理式表現です。

¬((¬(A∧(¬(A∧B))))∧(¬(B∧(¬(A∧B)))))

正しいですよ。
なお、閉じ括弧「)」が2箇所抜けて数が合いませんでしたので補ってあります。

式どおりに論理回路図を描いて見てください。
なお、式中「¬(A∧B)」が2箇所に現れますが同一回路であることに注意ください。

> ¬((¬(A∧(¬(B∧B))))∧(¬(B∧(¬(A∧A)))))
> ではないのでしょうか??
これは間違い。閉じ括弧「)」を2箇所追加し正しい論理式に直しました。
これは5NAND構成のXOR回路になりますので質問の趣旨に合わないでしょう。

4NAND構成のXOR回路はデジタル回路(論理回路)のテキストや参考書に良く載っていますよ。参考URLの中の4NAND回路がNAND構成のXOR回路です。

参考URL:http://en.wikipedia.org/wiki/XOR_gate

この回答への補足

 何度も失礼します。
¬((¬(A∧(¬(B∧B))))∧(¬(B∧(¬(A∧A)))))と
¬((¬(A∧(¬(A∧B))))∧(¬(B∧(¬(A∧B)))))
が等しいことはブール代数表現を使ってどう示せばよいのでしょうか??
ホントあつかましくてすみません。

補足日時:2008/06/25 00:57
    • good
    • 0

有名 (?) なネタですね. 答えは #1 の通り. これを回路にすると NAND は 4個です.


ところで, ¬((¬(A∧(¬(B∧B)))∧(¬(B∧(¬(A∧A)))) は NAND を 5個使ってるような気がするんですが, 今は「4個にする」のが目的じゃないんでしょうか?
まあ, 単純に「(NAND の数は無視して) XOR を作りたい」というだけならこれでできてますけど....
    • good
    • 0

以下の接続をすればNAND4素子でXORが組めます。



¬((¬(A∧(¬(A∧B)))∧(¬(B∧(¬(A∧B))))

この回答への補足

誠に恐れ入りますが、
¬((¬(A∧(¬(B∧B)))∧(¬(B∧(¬(A∧A))))
ではないのでしょうか??
間違ってたらホントごめんなさい。

補足日時:2008/06/24 19:01
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!