Counting Signals
前提
Binary Racer
Double Trouble
ODD Number of Signals
攻略
4つの入力のうちTrueであるものの数を数えて2進数として出力する回路を構成する問題です。
それぞれの桁について論理回路を考えます。
下位1bit目
4つの入力のうちTrueであるものが1, 3個であるときにTrueとなります。すなわち ODD Number of Signals で構成した回路そのものです。
下位2bit目
4つの入力のうちTrueであるものが2, 3個であるときにTrueとなります。 Double Trouble で構成した回路で、4つともTrueの場合を除いたものを用意すればよさそうです。
下位3bit目
4つともTrueであるときにTrueとなります。4つのビットのANDを取ればよいです。
したがって、次のような回路を構成すれば良いとわかります。
画面上部から下位1, 2, 3bit目の回路です。ただし下位3bit目がTrueのとき (= 4つともTrueのとき) 下位2bit目がFalseになるようにAND演算をしてあります。これは下位3bit目がFalseの場合だけ値を通過させていると考えることができます。
https://scrapbox.io/files/623ddcdc9327a9001d66987a.png