当サイトの一部ページには、アフィリエイト・アドセンス・アソシエイト・プロモーション広告を掲載しています。

Amazonのアソシエイトとして、Security Akademeiaは適格販売により収入を得ています。

広告配信等の詳細については、プライバシーポリシーページに掲載しています。

消費者庁が、2023年10月1日から施行する景品表示法の規制対象(通称:ステマ規制)にならないよう、配慮して記事を作成しています。もし問題のある表現がありましたら、問い合わせページよりご連絡ください。

参考:令和5年10月1日からステルスマーケティングは景品表示法違反となります。 | 消費者庁

Max【NandGame編】

はじめに

いつもブログをご覧いただきありがとうございます。

セミリタイア・ミジンコのIPUSIRONです😀

IPUSIRONのプロフィールを見る

Maxレベル

Maxレベルのゴールは、2つの入力値(16ビット)のうち最大値(ここでは2つの値を比較するので大きい値)を出力する回路を組むことです。

Maxレベルを解く

1:InputとOutputを端子を見ると、select 16コンポーネントで振り分けるのが自然な発想といえます。

どう振り分けるのかはまだなので、sピンは未接続です。

2:振り分けを実現する回路を考察します。

[1]「入力値Aの方が大きい」⇒「select 16コンポーネントのsピンに0を与える」

[2]「入力値Bの方が大きい」⇒「select 16コンポーネントのsピンに1を与える」

※A=Bのときは、どちらを出力しても問題ありません。

2つの数の大小比較であれば、素朴に差(ここではA-Bとする)を取るのがもっともシンプルです。

[1]「入力値Aの方が大きい」⇒「差>0」⇒「ここをどうするか??」⇒「select 16コンポーネントのsピンに0を与える」

[2]「入力値Bの方が大きい」⇒「差<0」⇒「ここをどうするか??」⇒「select 16コンポーネントのsピンに1を与える」

差についてはsub 16コンポーネントが用意されているので、そのまま使うだけです。

「ここをどうするか??」の部分を実現するのかを考えます。

入力が負の数のときに出力が1、入力が正の数のときに出力が0であるような回路を作ればよいのです。

実際のところ回路を実装するまでもなく、is negコンポーネントを使えばよいだけです。

以上を踏まえて、ステップ1の回路に組み込むと次のようになります。