数学を用いたパズルにはさまざまなものがある。なかには、鮮やかな手品のように、常識的には不可能と思えるようなことをやすやすと成し遂げてしまうものもある。
今回はそうしたパズルのなかで、欧米で有名なチェス盤を用いた伝心テストのパズルを見ていこう。
◇ 『指定されたマス』 をどう伝心する?
まず、パズルの問題を示そう。
(チェス盤を用いた伝心テスト)
ある国では、婚約しているカップルに次の伝心テストが課され、合格したら結婚が認められる。
テストには、64マス(=8行×8列)の通常のチェス盤と、64枚のコインが用いられる。
まず、カップルのうちの1人が、部屋のなかにいる試験官に入室するよう指示される。部屋には机上にチェス盤があり、各マスにはコインが1枚ずつ置かれている。コインはそれぞれ表か裏を上に向けている。試験官は、64マスのうち1つを指さして、「このマスを『指定されたマス』とします。コインのうちどれか1枚をひっくり返して、このマスが『指定されたマス』であることを、あなたの婚約者に伝心してください」と言う。この人は、コインを1枚ひっくり返すと、部屋から外に出るように言われる。この人が部屋から出ると、もう1人が部屋に入るよう指示される。出入室の間に、両者が部屋の外で『指定されたマス』の情報をやり取りすることはできない。
試験官は、部屋に入ってきたもう1人に「あなたの婚約者から伝心された『指定されたマス』はどれかを答えてください」と尋ねる。見事、言い当てることができたら、伝心テストに合格となる。
婚約中のカップルは、このテストをどのように乗り越えればよいだろうか?
この問題はあくまで架空の設定である。どこかの国で、このようなテストが行われているわけではない。このパズルの設定はフィクションであり、実在する国・団体などとは一切関係がない。
このテストは、婚約者同士が伝心できるかどうかを試して愛情の力を確かめようという趣旨だろう。だが、こんなテストを行っていたら、結婚が減って、少子化問題に拍車をかけてしまうかもしれない。現実の国で、このような制度が採用されることは、通常は考えにくいと言えるだろう。
このテストの設定の問題点を指摘するのはこのくらいにしておこう。さて、それではどうするか。
まず素朴に、先に入室した人が、『指定されたマス』のコインをひっくり返すことが考えられる。その際、ひっくり返したコインを少しマスからはみ出すようにして置く、またはひっくり返したコインに爪でひっかき傷をつける ― など、後から部屋に入る婚約者に向けてなにか目印をつけておく…。
ただし、このやり方は試験官にとがめられてしまう可能性が高い。たぶん、うまくいかないだろう。
◇ パズルを解くとっかかり - なぜチェス盤を用いているのか?
パズルの問題のなかで、試験官にコインのうちどれか1枚をひっくり返すよう言われるが、それがどう伝心につなげられるのか? このパズルは、どうもこの点がよくわからない。
そこで、もう一度問題の設定をよく見返してみる。そもそも、なぜチェス盤を用いているのか? これは、このパズルが欧米の起源だからということかもしれない。
しかし、日本のパズルに置き換えるのならば、チェス盤である必要はないはずだ。81マス(=9行×9列)の将棋盤や、324マス(=18行×18列)の碁盤を使ってもよいような気がする。将棋盤や碁盤ではダメなのか? (通常、碁盤でマスに注目することはないが、ここは大目に見ていただきたい。)
そもそも、なぜこの問題では「64マス(=8行×8列)の通常のチェス盤」と、殊更に"64マス"であることを強調しているのか。64という数には、なにか意味があるのではないか? ― こんなふうに考えていくと、このパズルを解くとっかかりを得ることができる。
◇ 64は2の6乗
ここで、64という数について考えてみる。64は2の6乗だ。0から(64より1小さい)63までの整数を2進数で表示すると、000000から111111までの6ケタの数のいずれかとなる。
そこで、64個のマスに2進数を割り当ててみる。1行1列のマスには000000。1行2列のマスには000001。… 1行8列のマスには(10進数の7に相当する)000111。2行1列のマスには(10進数の8に相当する)001000。…… 8行8列のマスには(10進数の63に相当する)111111、といった具合だ。
◇ ニム数の足し算
そして、これらの6ケタの2進数を、"ニム数"と呼ばれる特殊な計算を行う数としてとらえる。ニム数の世界には足し算の概念があるが、通常のものとはやや異なる。繰り上がりという考え方がないのだ。ニム数での足し算を、⊕という記号で表すことにしよう。
例えば、001010 ⊕ 001111 = 000101となる。各ケタ同士で0と1の足し算をする。繰り上がりはしない。これを10進数で置き換えると、10 ⊕ 15 = 5となる。
6ケタのニム数で同じ数同士を足し算すると000000となる。これは、⊕の計算のもとでは、ある数の逆数はその数自身であることを意味する。つまり、⊕の計算では、ある数を足すことと引くことは同じことになる。そのため、ニム数の世界では、引き算は、足し算⊕で代替できる。
また、0から63のうちの2つの整数をニム数として足し算すると、その結果は0から63のうちのどれかの整数となる。これは、繰り上がりがないので、当たり前と言えるかもしれない。
他にも、ニム数にはいろいろな性質があって奥深いのだが、ここではこれ以上立ち入らない。(興味のある読者は、専門書やインターネットの関連サイト等をご覧いただきたい。)
◇ ニム数の足し算を活用して『指定されたマス』を伝心する
パズルに戻ろう。先に入室した人は、どのマスが『指定されたマス』かをニム数を使って示すことが考えられる。それには、コインが表を向いているマスに割り当てた数のニム数の合計が、『指定されたマス』のニム数と同じになるようにすればよい。
つまり、まずチェス盤のコインが表を向いているマスに割り当てた数のニム数の合計を⊕で計算する。そしてその結果と、指定されたマスのニム数との差をとるために、両者を⊕で足し算する。ニム数の世界では、引き算は、足し算⊕で代替できるからだ。そして、その足し算の結果を示すマスのコインをひっくり返す。
後に入室した人は、コインが表のマスのニム数の合計を⊕で計算する。その計算の結果を示すニム数のマスが『指定されたマス』となる。
なお、マスに割り当てたすべてのニム数の⊕での合計 (000000から111111までの64個のニム数の⊕での合計) は000000になる。このため、コインが表を向いているマスに割り当てたニム数の合計と、裏を向いているマスに割り当てたニム数の合計は同じになる。コインが表を向いているマスがたくさんあるようなときは、裏を向いているマスについて⊕での合計を計算すると、少ない手間で済む。
このようにして、ニム数の足し算⊕を用いて、先に入室した人は1枚コインをひっくり返すことにより、婚約者に『指定されたマス』を伝心できる。
もちろん、チェス盤を用いた伝心テストで、こうしたニム数を用いる伝心方法の詳細については、テストを受ける前にあらかじめ2人でよく話し合っておく必要があるだろう。婚約している2人に、お互いを信じ合う愛情とニム数の計算力があれば、きっとこのテストは乗り越えられるはずだ。
レポートについてお問い合わせ
(取材・講演依頼)