アプリ版:「スタンプのみでお礼する」機能のリリースについて

2入力1出力の論理回路は全部で16通り存在する。これらすべてがNAND回路で構成できることを証明せよ、という問題があるのですが、さっぱりわかりません。

とりあえずそのそのような回路が16通りあることまでは確認しました。でもこれらすべてがNAND回路で構成できることを証明せよ、という部分が全くわかりません。

「計算科学の基礎」(八村広三郎著)や「情報科学と基礎」(竹田仁)といった参考書を何度読んでも、ヒントすら得られない状況です。

どなたかこの問題のキーポイントを教えてくださいませんか?よろしくも願いします。

A 回答 (6件)

論理回路の基本ですのでよく勉強しておいて下さい。


http://laputa.cs.shinshu-u.ac.jp/~yizawa/logic_t …
    • good
    • 0

16種類ぐらいであるならば、その16種類を実際に作って見せればいいのです。


出来る事を証明すれば良いだけなので効率などは無視して良いですね。

2ビットの入力をデコードして4ビットにしてその4ビットを適当に
組み合わせて16種類の出力を得るようにすれば出来ます。
    • good
    • 0

前仕事として制御系マイクロコンピュータのレイアウト設計を経験したので、回答します。



半導体チップ上のデジタル回路は、NAND、NOR、NOTの3個を基本にして構成されるようになっているため、こういう問題が出てくるのです。

すぐ解けるようにするには、論理式と入出力による符号表をしっかり身につけるのが早道です。
それがわかれば、NAND回路だけでOR回路を構成できます。

今思えば、懐かしい問題です。
    • good
    • 0

★MIL記号では。


・MIL記号で NAND 回路は AND 回路の出力に NOT の○を追加していますよね。
 これを OR の入力部にすべて NOT の○をつけて表したのと同じになります。
 イメージわきますか。NAND=入力部に NOT が付いた OR と同じ論理なのです。
・この変形表記した NAND(NOT 付きの OR)にさらに NAND で作った NOT を入力側に
 2つ付けます。そうすると OR 回路になりますね。
・OR 回路が出来れば、出力端子に NAND で作った NOT を入れると NOR 回路になります。
・NAND 回路の出力端子に NAND で作った NOT を入れると AND 回路になります。
・これで NAND、OR、NOR、AND の4つが出来ます。
 すると2入力(組み合わせ数:4)×4タイプの回路(NAND、OR、NOR、AND)=16通りです。
 こう考えると簡単ですよ。

補足:
・この説明は MIL 記号の意味と NAND が NOT 付きの入力端子を持つ OR と同じ論理になる
 ことを事前に知らないと理解できそうにないね。でも、この解説をきっかけにお勉強しましょう。
・MIL 記号で NAND 回路は、NOT 付きの入力を持つ OR 回路と同じになるのです。
 
 (NAND)
 A B Y
 0 0 1
 0 1 1
 1 0 1
 1 1 0
  ↓
 (OR)
 A B Y
 0 0 0
 0 1 1
 1 0 1
 1 1 1
  ↓
 (入力がNOT 付きの OR)
 A B Y
 1 1 1
 1 0 1
 0 1 1
 0 0 0
・以上。私なりの解説でした。
    • good
    • 0

No.1の方のやり方が正道かも知れませんが泥臭い方法で。


16種類と言うのはBOXがORかANDで
入出力は3つで、肯定否定の組み合わせで結局2^4=16通りです。

つまり、AND、OR 、NOTの組み合わせと言うことです。
そこで、AND、OR、NOTがそれぞれNANDで構成できることを証明すればいいですね。

NOT・・・例えば入力を直結するとNOT(A・B)=NOT(A・A)
      =NOT(A)
      またB=1で固定すればNOT(A・B)=NOT(A・1)
      =NOT(A)
OR・・・・NOT(A・B)=NOT(A)+NOT(B)
      これはNANDの前にNOT2つをおけばORが構成できることを
      示しています。
ANDはご自分でやってみてください。ごく簡単です。
NANDを否定すればいいのです。
    • good
    • 0

ANDとNOTは2つで万能であるという定理が問題のどこかにありませんか?


その定理と、NANDだけでNOTを作れるということでNANDの万能性が証明できるとおもいます。
    • good
    • 0

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