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

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

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

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

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

Circular Dependency【Code Complete編】

2023年9月16日

はじめに

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

コーストFIRE中のIPUSIRONです😀

IPUSIRONのプロフィールを見る

Circular Dependencyステージ

Circular Dependencyステージのゴールは、循環参照を回路を作ることです。

Circular Dependencyステージを解く

1つのNOTゲートを挟んだループする回路を組みます。この回路はリングオシレーターと呼ばれます。

※これまでワイヤーを引く際に、始点と終点を意識する必要はありませんでした。それは電流の流れが入力ピンから出力ピンの方向に定まっていたためです。今回のような順序回路では、最初にクリックした位置が電流が流れる始点となります。ワイヤー上をDNA風のアイコンが移動しますが、その移動する向きが一定になるようにします。ここでは循環するようにします。

状態が存在しないので、論理不能な回路です。

非論理回路ではありませんが、電圧が永久に振動します。その振動はあまりにも高速であるため、回路が焼き切れる恐れがあります。

※状態の非存在が、振動を引き起こしています。

エラーが発生していますので、[Run]ボタンを押してもテストは走りません。

本ステージはあえてエラーを作り上げるという特別なステージであり、[Check]ボタンを押すとクリアできます。

Read moreを押すと、Circular Dependencyの解説を確認できます。

Turing Completeのシミュレーターでは循環参照を許可せず、代わりにエラーになります。

ただし、次回以降の問題に登場するDelayed Lineコンポーネントを挟んだ場合は例外とします。このコンポーネントは1tick分の遅延を引き起こし、循環参照を引き起こさないためです。

別解

2つのNOTゲートをループさせた回路は、状態が2つある順序回路です。

・「左側のワイヤーがT、右側のワイヤーがF」の状態

・「左側のワイヤーがF、右側のワイヤーがT」の状態

※振動は引き起こされません。

別解2

別解3