じぶん更新日記・隠居の日々
1997年5月6日開設
Copyright(C)長谷川芳典



08月のインデックスへ戻る
最新版へ戻る


クリックで全体表示。

 朝日に輝く岡山理科大学の校舎。季節(日の出の方位)により輝く時間帯は異なる。

2022年8月4日(木)



【連載】8×8にランダムに敷き詰められたオセロ盤の石を1つ裏返して1から64を表す方法(3)

 昨日に続いて、YouTubeの「ナゾトキラボ【IQ & 謎解きチャンネル】」で公開されている、

絶対に解けない数学問題!?世界一難しい論理クイズ

についての考察。

 まず、昨日取り上げた以下のクイズについての考察。
  1. 部屋の机上には0〜9いずれかの数の書かれた1枚のカードXが置かれている。
  2. まずプレーヤーAがこの部屋に入り、0から9のうちのいずれかの数字が告げられる。
  3. さらにプレーヤーAには、0〜9が書かれたカードYが与えられる。プレーヤーAはそのうちの1枚を選ぶ。
  4. プレーヤーAが退室後、プレーヤーBが入室する。プレーヤーBには、カードXと、プレーヤーAが選んだカードYの合計の値のみが告げられる。
  5. プレーヤーBは、この合計値だけから、プレーヤーAに告げられた数字を言い当てることができるか。
 このクイズのポイントは、

●カードXが0〜9のどの数字であっても、プレーヤーAはカードYを適当に選んで足し合わせることで、告げられた数QをプレーヤーBに伝えることができる。

という点にある。そのためには、

Y=(10ーX+Q)

というようにYを選べばよいことになる(10以上の時は10を引く)。また、プレーヤーBは合計値の1桁めを答えれば正解になる。例えば
  • Xが3で、告げられた数Qが7であった場合は、上の式では「14」となるので10を引いてY=4というカードを選べば良い。プレーヤーBには合計値7が伝えられるので、それがそっくりQの値となる。
  • Xが8でQが1であった場合はY=3というカードを選べばよい。プレーヤーBは合計値「11」という数を伝えられるので1桁目の「1」と解答すれば正解になる。
これは特にどうということのない簡単な問題であるが、プレーヤーBに伝えられる合計値にはプレーヤーBが知らないはずのXが含まれているのにどうしてQの値が分かるのか?という素朴な疑問を生じやすいために、手品風に細工を施せば結構面白いゲームになるはずだ。




 次に、元の問題の8×8を2×2=4マスに単純化した場合について考えてみる。
 4マスに敷き詰められた石のパターンは24で16通り(4ビット)あり、いっぽう、プレーヤーAに告げられる数は1〜4のいずれかであり、これは2ビットの情報となる。以上をふまえて、16通りのパターンで4通り情報(2ビット)を表現する方法を考えてみよう。8×8の方略と同じように考えると、
  1. 2×2=4個のマス目に2進数表示で「00」から「11」という2桁(2ビット)の「番地」を割り付ける。
  2. それぞれのマス目において、白石がおかれている場合の番地を調べる。番地の2桁目と1桁目それぞれにおいて「1」がいくつあるか数える。例えば「10」という番地に白石が置かれていた場合は、2桁目で「1」が1回カウントされる。
  3. 1桁目と2桁目それぞれにおいて、カウントされた「1」の数が偶数(0個または2個)の時は0、奇数(1個)の時は1に置き換える。
  4. このようにして、4個のマス目の上に置かれた白黒の石が作る16通りのパターンを、2進数2桁(2ビット)で表記される4通りの数値に置き換えることができる。
  5. 1から4いずれかの数値が告げられた時、この数値を2桁の2進数に置き換える。但し4は「00」とする。
  6. 4.で得られたオセロ盤の元々のパターンに対応する数値と、告げられた数値を照合し、「特殊な引き算」を行う。特殊な引き算というのは、各桁ごとに独立して行われる引き算であり、繰り上がりはしない。また、絶対値のみをとるものとする。【「排他的論理和」と同じ】。例えば、オセロ盤のパターンが「01」であり、告げられた数が3(「11」)であった場合の「特殊な引き算」の結果は「10」となる。
  7. 6.で得られた結果に相当する「番地」の石をひっくり返すことで、オセロ盤のパターンに対応する数値を告げられた数値と同じ値にすることができる
というようにして8×8盤と同じように、1つの石をひっくり返すことで、告げられた数を表すパターンに作り替えることができる。例えば、上記の2×2のオセロ盤のパターンが「01」というのは、

●○
●●

であり、「11」と告げられた時にひっくり返す番地は、特殊な引き算(01-11=10)により「10」、すなわち左下のマス目の黒石であるゆえ、ひっくり返した後のパターンは、

●○
○●

となる。




 さて、元の話題に戻るが、表題の

●8×8にランダムに敷き詰められたオセロ盤の石を1つ裏返して1から64を表す方法

といいうのは、

●オセロの6個の石を使って1〜64を表す方法

とは異なっている点に留意しなければならない。1〜64は、2進数6桁(6ビット)で表すことができるので(但し「64」は2進数「000000」と見なす)、単に数を表現するだけであるなら6個の石があれば十分。いっぽう「8×8にランダムに敷き詰められたオセロ盤の石を1つ裏返して1から64を表す」という場合は、与えられた8×8のパターンに対して64通りの裏返しがおこなわれ、かつそれぞれの裏返しが「0」から「63」までの数値表現ができるような操作でなければならないことを意味する。

 ここで留意しなければならない重要なポイントが1つある。それは、1つの石を裏返して

●(与えられたパターンが表す数)→(告げられた数)

への変換をおこなう際に、

●(与えられたパターンが表す数)イコール(告げられた数)

というケースが含まれていることである。このクイズでは、「1つの石を必ず裏返す」ルールとなっているのでどこかを裏返さなければならない。YouTubeの中でも説明されていたように、これは「000000」の「番地」の石を裏返すことで可能となる。これまで紹介されてきた方法では、8×8盤のパターンは、それぞれのマス目の6桁、5桁、...1桁それぞれの番地が「1」となっているのマス目に白石が奇数個あるか(「1」)、偶数個あるか(「0」)で、数値を表現してきた。ところが「000000」という番地はカウント対象には含まれていないので、白石であっても黒石であっても表される数は同じになる。

 同じことは2×2盤でも言える。例えば、

●○
○●

と、

○○
○●

というパターンは、いずれも「11」を表しており、「00」の番地に相当する左上の石の白黒はカウントされていないことが分かる。




 以上、元の8×8盤のほかに2×2盤を含めてこのクイズで正解を出すための方略について考察した。この方略は、他の大きさのマス目でも適用できるものと思われるが、パターンの分類が2進数の桁数に対応していることから、
  • 2×2盤:1〜4を表現、すなわち2ビット
  • 2×4盤:1〜8を表現、すなわち3ビット
  • 4×4盤:1〜16を表現、すなわち4ビット
  • 4×8盤:1×32を表現、すなわち5ビット
というように、マス目の数が2nでない場合は不都合が起こるのではないかと直観される。例えば、3×3盤で1〜9を表現できるようには思えないが、まだ確認していない。

 次回に続く。