ar.falsy.cat/content/note/word-play/two-lolita-devils-and-chess...

2.2 KiB
Raw Blame History

title tags
2人の幼女と悪魔とチェス盤
note
word-play

概要

  • 「2人の幼女とチェス盤の部屋」という次のような論理問題を解説する
    • 以下の手順の後幼女Bが任意の整数x\left(0\leq x<64\right)を求められるようにするには幼女Aはどのような操作を行うべきか
      1. 悪魔が8x8チェス盤の各マスに1個ずつ合計0個以上64個以下のポーンをランダムに配置する
      2. 悪魔は幼女Aにチェス盤を見せ任意の数字x\left(0\leq x<64\right)を伝える
      3. 幼女Aはチェス盤に対して次のいずれかの操作のうち可能であるものを1回だけ必ず行う
        • 任意のマスからポーンを1個だけ取り除く
        • 任意のマスにポーンを1個だけ追加する
      4. 悪魔は幼女Bにチェス盤を見せる

問題の簡潔化

  • f(g(b,x))=xとできるような写像f,gを求めよ
    • B=\left\\{0,1\right\\}
    • b\in B^{64}
    • x\in B^6
    • f: B^{64} \rightarrow B^6
    • g: B^{64} \times B^6\rightarrow B^{64}
      • bg(b,x)は1ビットだけ異なる

解答

解説

  • x=f(b)\oplus mとなるようなm\in B^6は必ず存在する
  • 盤面の各マスにmの値を割り当てることで1マスの操作だけでmを表現できる
    • 盤面のマス目の数も,mがとりうる値の数も64
    • f(g(b,x))=f(b)\oplus m=f(b)\oplus f\_m\oplus m(1-b\_m)

応用

  • 長さ2^Nの任意のビット列について任意の1ビットだけを反転させることで長さNのビット列を表現できる

参考文献