1. ホーム
  2. boolean-logic

[解決済み] 4つのうち3つが真であることを検証するためのロジック

2022-04-24 15:28:42

質問

を返したい。 True 4つのブール値のうち3つが真である場合のみ。

一番近いのは (x ^ y) ^ (a ^ b) :

どうしたらいいのでしょうか?

解決方法は?

何を言いたいのかがわかるようにコードを書くといいと思います。3つの値を真にしたいのであれば、3という値がどこかに現れるのが自然な気がします。

例えば C++ :

if ((int)a + (int)b + (int)c + (int)d == 3)
    ...

でしっかり定義されています。 C++ : この standard (§4.7/4) を変換することを示します。 bool から int を指定すると、期待される値0または1が得られます。

JavaやC#では、以下のような構成で使用できます。

if ((a?1:0) + (b?1:0) + (c?1:0) + (d?1:0) == 3)
    ...