2

これら2つのステートメントが等しくない理由を誰か説明できますか?

if not(a and not b): 
// do some stuff


if (not a and b):
// do some stuff

最初のステートメントを 2 番目のステートメントに変更して、プログラムをより理解しやすくしようとしましたが、うまくいきません。理由がまったくわかりません。

4

3 に答える 3

7

De Morgan's Thereom を調べる必要があります。その半分は(a)です。

not(p and q) -> not(p) or not(q)

それがあなたの状況にどのように当てはまるかという点では、 と に置き換えてpください:aqnot(b)

not(a and not b) -> not(a) or not(not(b))
                 -> not(a) or b

(a)残りの半分は次のとおりです。

not(p or q) -> not(p) and not(q)
于 2013-05-15T01:42:59.840 に答える
1

if not(a and not b)if (not a) or bあなたが書いたものではなく、 と同じです。

于 2013-05-15T01:41:42.560 に答える
1

また、ド・モルガンの法則により、「and」を「or」に反転する必要があります。

if not(a and not b)

になる

if (not a or b)
于 2013-05-15T01:42:31.800 に答える