2016-09-27 7 views

答えて

2

前述のように、これはDeMorganの法則で解決できます。簡単なルール:

これが意味することを考えてみましょう:A && Bは「AとBの両方が真です」を意味します。したがって、!(A && B)は、 "ではなく、 AとBの両方が真の場合"つまり、一方または両方が偽であることを意味します。

!(A || B) <-> !A && !B 

それについてこのように考える:(A || B)は「Aが真であるか、Bが真である(またはAとBの両方が真である)。」ということを意味したがって、!(A || B)は、「Aが真であるか、Bが真である」という意味ではなく、どちらも真ではありません。したがって

!(foo && !bar) 

は、それが "foo" と "!バー" 両方に該当する場合ではないということを意味します。少なくとも1つは偽でなければなりません。

!(foo && !bar) -> (!foo || !!bar) -> (!foo || bar) 

重要な注意:従来(数学的に、多くのプログラミング言語で)「または」包括的であるか、そう(A || B)手段「のいずれかAが真で、Bが真である、またはその両方が真です。」

もう1つの表記のこと:「 - >」は数学的意味を意味し、「< - >」はそれらの文が同等であることを意味します。これは「if if only if」または単に「iff」と呼ばれることもあります。

関連する問題