問題タブ [demorgans-law]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
demorgans-law - プログラミングでいつデモガンの法則を適用する必要がありますか?
プログラミングの授業に入門したことのあるプログラマーは誰でも、デモガンの法則を暗記しなければならなかったと思います。
わからない場合は要点を
!(A && B) = !A || !B
!(A || B) = !A && !B
暗記する必要がある場合、プログラミングの状況に適用できると思いました。しかし、私はそれをまったく使用する必要はありませんでした。
プログラミングでそれを使用する必要がある理由はありますか? プログラムが速くなりますか、それとも条件が読みやすくなりますか?
haskell - カリー・ハワード対応によるHaskellのド・モルガンの法則
Haskell で 4 つの De Morgan の法則のうち 3 つを実装しました。
ただし、最後の法律 (住民が 2 人いる) を実装することは可能ではないと思います。
私の見方では、2つの可能な解決策があります。
undefined
の代わりに使用し?
ます。これは不正行為であるため、良い解決策ではありません。デフォルト値をエンコードするには、モノモーフィック型または制限付きポリモーフィック型のいずれかを使用します。
これはド・モルガンの法則よりも弱い法則であるため、良い解ではありません。
De Morgan の法則が正しいことはわかっていますが、最後の法則は Haskell でエンコードできないと仮定するのは正しいですか? これはカリー・ハワード同型について何を言っているのですか? すべての証明を同等のコンピューター プログラムに変換できない場合、それは実際には同型ではありませんよね?
boolean-logic - ブール論理: デモガンの定理、NAND ゲート
ブール式の次の部分の回路を構築しようとしています。
これを拡張すると、もちろん次のようになります。
デモガンの定理を使えば、
A * A = Aであるため、ABCDEに還元できます。
ただし、ABCDE を NAND ゲートに入れると、必要な結果が得られません。どうしてこれなの?私の論理のどこが間違っていたのでしょうか?
編集:@Leandro Canigliaが問題を説明しました:
それで、私がそれを減らすことができるのは最も遠いです:
(AB)! + !C(DE)!
?
それを簡素化できる他の方法はありますか?
boolean-logic - 反転入力付きNANDゲート
私が式を取るとしたら:
ド・モルガンの法則を使用して、次のように変換します。
NANDゲートに入れる前に各ビットを反転する必要がありますか? もっと簡単な方法はありますか?
編集:ショートカットはありません。(!A!B!C!D!E)!