2011-08-14 8 views
1

複雑な論理演算

(A AND B)OR(C AND D)

は、任意の括弧を使用して同じ結果を与えることなく、同様の式を書くための方法はありますか?論理演算子AND、OR、NOTの使用は許可されています。

答えて

4

はい:ほとんどのプログラミング言語で

A and B or C and D 

and(これは、それぞれ、*+からandorの等価由来)orよりも高い優先順位を有すると解釈されます。もちろん

、あなたのオリジナルの表現があった場合:

(A or B) and (C or D) 

あなたは、単に括弧を取り除くことができませんでした。

A and C or B and C or A and D or B and D 
+0

ほとんどのプログラミング言語でそうです。残念ながら、私はあなたがAND/ORと組み合わせることができるいくつかのフィルタを持つプログラムについていました。私の質問に示されているように論理演算にリンクされた4つの異なる条件を試してみると、プログラムはそれらを「線形に」適用し、最初のものを適用し、2番目のものに結果を適用するように思えます。例えば、A = TRUE、B = TRUE、C = FALSE、D = FALSEの場合、TRUEの結果が得られますが、FALSEを返すと思うエントリは表示されません。 – Dan737

+0

これは、プログラムを次々と適用することでプログラムが開始されると意味があります。それで、A = TRUE、B = TRUE、C = FALSE、D = FALSEとしましょう。次に、中間結果は次のとおりです。 1. TRUEとTRUE = TRUE 2. TRUEまたはFALSE = TRUE 3. TRUEとFALSE = FALSEは最終結果です。 – Dan737

+0

「ほとんどのプログラミング言語で」という単語の訂正を加えたいと思います。 Logical ANDは、オーバーロードをサポートする言語でのみ優先順位が高くなります(これは、Java、CおよびWikiごとのC++を含みません)。私が間違っていれば私を修正してください。 –

1

方法についてA AND B OR C AND D:このインスタンスでは、要因を「アウト乗算」する必要があるだろうか? ANDORよりも優先するため、同じです。

0

括弧を入れないでください...