0
私の質問は非常に簡単で、私は何をしなければならないか理解していますが、私の理解を表すことはできません。どのようにNANDゲートのルールの観点からXORやNORのようなゲートを定義する述語を書くのですか?例えばプロローグの操作上のセマンティクス
:
nand(t,t,f).
nand(t,f,t).
nand(f,t,t).
nand(f,f,t).
は、上記NANDゲートの真理値表です。ここで、Prologで上記の用語を使用してXORゲートを定義したい場合、たとえばXrol(X、Y、Z)についてPrologに質問する必要がありますが、3つの可能な回答が得られます。
はあなたが
@CapelliCがこれに与えた答えを参照してください。与えられた操作に関して要求された操作を書き出す(または "結びつける")ためには、ブール論理を最初に使用するだけです。彼は、NAND入力からXORを得る方法を示しました。 NORを使用したい場合は、ブール論理を再度使用します。 NANDはNOT(A AND B)です。 NORはNOT(A OR B)です。 'NOT(A OR B)'のような論理的な規則は '(NOT A)AND(NOT B)'と同等です。どのようにNANDからNOT Aを得るのですか?簡単です: 'NOT A = NAND(A、A)'。 'や(A、B、C)'を理解するためにそこからちょっとした作業をしてください。 – lurker
明確にするために、私は以前のコメントにPrologのステートメントを書いていませんでした。それらは単なる論理的なステートメントです。しかし、あなたが問題を解決するには、その情報を十分に考慮する必要があります。 – lurker