a、b、c が 3 つの整数であるとしましょう。次に、それらを XOR して、d = a ^ b ^ c を取得します。
「a」と「d」しか知らず、a、b、cの間に関係がない場合。「a」が「d」の生成に使用されたかどうかを確認する方法はありますか?
例えば:
d = a ^ b ^ c;
func(a, d); //returns true
func(b, d); //returns true
func(f, d); //returns false, for f!=a, f!=b, f!=c
つまり、「d」は「a^b^c」の結果であり、事前にはわかりません。「d」と数値「x」が与えられた場合、x が a または b または c のいずれかであるかどうかを確認できますか?
申し訳ありませんが、ここで a、b、c、d はブール変数ではないことを忘れてしまいました。どのプログラミング言語でも整数を表すために使用します。したがって、d = a^b^c はビット演算です。たとえば、d は 2^18^19 の結果に等しくなります。