1. ホーム
  2. java

[解決済み] ド・モルガンの法則

2022-02-19 07:41:59

質問

デモーガンの法則を使って次のように単純化しようとしている:! (x!=0 || y !=0)

x!=0は単純化してx>0になるのでしょうか?それとも以下のように間違っているのでしょうか。

 !(x>0 || y>0)
 !(x>0) && !(y>0)
 ((x<=0) && (y<=0))

ありがとうございます。

どのように解決するのですか?

<ブロッククオート

x!=0はx>0に簡略化されるのでしょうか?

そんなことはない。なぜなら、整数は符号付きだからです。


簡略化する方法 : !(x!=0 || y !=0) ?

このルールを考えてみましょう。

  1. (第二 ド・モルガンの法則 )

1.により、次のことを意味する。

!(x!=0 || y !=0) <=> (!(x!=0)) && (!(y != 0))

2.により、以下のようになります。

(!(x!=0)) && (!(y != 0)) <=> (x == 0) && (y == 0)


テストするには、次のようなループを書きます。

for(int x = -5; x < 5; x++){
     for(int y = -5; y < 5; y++){
         if(!(x!=0 || y !=0))
            System.out.println("True : ("+x+","+y+")");
    }
}