• 締切済み

論理式の求め方

A,B,C,Dの4つの入力と出力Yで、入力に1の数が2個の時は0、それ以外の時は1を出力する論理回路についてNOTとANDだけの論理式にしたいのですが、どうしても簡単化をしてまとめることができません。わかるかたがいればぜひおしえて下さい。よろしくお願いします。

みんなの回答

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

カルノー図を書いてみたけど、とくに簡略化できるところはなさそう。 ということで、そのまま項を列挙するだけで良いと思います。 以下検証: %cat a.rb bool = [false, true]; bool.each do |a| bool.each do |b| bool.each do |c| bool.each do |d| r = !(!a & !b & c & d) & !(!a & b & !c & d) & !(!a & b & c & !d) & !(a & !b & !c & d) & !(a & !b & c & !d) & !(a & b & !c & !d); print a ? '+' : '-'; print b ? '+' : '-'; print c ? '+' : '-'; print d ? '+' : '-'; print ' = ', r, "\n"; end end end end %ruby a.rb ---- = true ---+ = true --+- = true --++ = false -+-- = true -+-+ = false -++- = false -+++ = true +--- = true +--+ = false +-+- = false +-++ = true ++-- = false ++-+ = true +++- = true ++++ = true % 一応、NOTとANDの論理ゲートだけで構成できてるかと。

marukosan
質問者

お礼

おそくなりましたが大変参考になりました。 ありがとうございました。