b,8C + c) の xor が0になることは、 A xor B xor C = 0かつ、a xor b xor c = 0 であることと同値。 A,B,Cは N - 3bit (偶数bit) かつ、1以上なので、Nが偶数の場合の解法を使えばよい。 各(A,B,C)に対して、(a,b,c) として以下のような組を全て試すと、8から2^N - 1の数が全て 出てくる。 (a,b,cとして0から7までが全て出ていて、A,B,Cのいずれかに上位bitとして出て くる数は出ているので) (0,0,4),(1,3,2),(2,5,7),(3,2,1),(4,7,3),(5,0,5),(6,6,0),(7,1,6) なお、条件をみたす (a,b,c)の組は他にもある。これは手動で頑張って構築してもよいし、 全探索をしてもよい。 22