• ベストアンサー

XOR をNAND素子のみを用いて表したい

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

質問者が選んだベストアンサー

  • ベストアンサー
  • info22
  • ベストアンサー率55% (2225/4034)
回答No.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)の方法は自分でやってみてください。

inhisownhand
質問者

お礼

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

その他の回答 (4)

  • arrysthmia
  • ベストアンサー率38% (442/1154)
回答No.4

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個になりますが…

  • info22
  • ベストアンサー率55% (2225/4034)
回答No.3

#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
inhisownhand
質問者

補足

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

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

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

  • info22
  • ベストアンサー率55% (2225/4034)
回答No.1

以下の接続をすればNAND4素子でXORが組めます。 ¬((¬(A∧(¬(A∧B)))∧(¬(B∧(¬(A∧B))))

inhisownhand
質問者

補足

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

関連するQ&A