1. はじめに

1
2008 年 04 月 10 日

数当てに対する考察
新潟工科大学 情報電子工学科 竹野茂治

1

はじめに

2 進法を利用した数当てゲーム (パズル ? 手品 ?) というものがあるがご存じだろうか。ある範囲の整数から好きな数を一つ選んでもらい、その範囲の複数の数字が書かれたカードを何枚か見せて、覚えた数字が入っているカードを選んでもらって、それにより覚えてもらった数字を直ちに言い当てる、というものである。
今回は、そのゲームに関して少し考察してみることにする。

2

基本的な数当てゲームとその仕組み

本稿で扱う数当てゲームとは、例えば以下のようなものである。

1. 1 から 15 までの数字を一つ選んで覚えてもらう。
2. 以下の数字が書かれた 4 枚のカードを順に見せ、覚えた数字がそのカードに書かれているかどうかを答えてもらう:• 1 枚目: 1, 3, 5, 7, 9, 11, 13, 15• 2 枚目: 2, 3, 6, 7, 10, 11, 14, 15• 3 枚目: 4, 5, 6, 7, 12, 13, 14, 15• 4 枚目: 8, 9, 10, 11, 12, 13, 14, 15
3. その回答により、覚えてもらった数字を即座に言い当てる
2. のカードの数字は、一見して多少の規則性があることがわかるが、逆に実際のカードを作るときは、この規則性がわからないようにランダムな順番に書き並べた方が効果は上がる。

2. 基本的な数当てゲームとその仕組み

2

例えば、9 を選んだ場合、1 枚目と 4 枚目のカードに含まれることになるが、これは、1 枚目と 4 枚目のカードのそれぞれ最小の数字 1 と 8 の和に等しくなっている。
実は 1 から 15 までのすべての数字がそうなっているのであるが、これは 2 進法で簡単に説明できる。
今、2 進法の数字を 101(2) のように後に (2) をつけて書くことにすると、15 以下の数
字は 2 進法で最高 4 桁の数字であり、書き上げると以下のようになる:

1 = 0001(2),2 = 0010(2),3 = 0011(2),4 = 0100(2),5 = 0101(2),6 = 0110(2),7 = 0111(2),8 = 1000(2),9 = 1001(2),
10 = 1010(2),11 = 1011(2),12 = 1100(2),13 = 1101(2),14 = 1110(2),15 = 1111(2)例えば、9=0101(2) であるが、これは、

9 = 0100(2) + 0001(2) = 8 + 1のように書くこともできる。
実は、上の表を見るとわかるが、j 枚目のカードには、下から j 桁目が 1 である数字が書かれているになっていることがわかる。
だから 9 の場合、一番下の桁と下から 3 桁目が 1 なので 9 は 1 枚目と 3 枚目のカードに含まれていて、そのそれぞれのカードの一番小さい数というのは、その桁が 1 でそれ以外の桁は全部 0 の数、つまり 0001(2) と 0100(2) であるから、これらを足せば丁度元の数字に戻るわけである。
これを、小さい子供にもわかるように説明するとすれば、例えば、

1 から 15 までの数は、1,2,4,8 のうちのいくつかの数の足し算で表される:
1 = 1,
2 = 2,
3 = 1+2,
4 = 4,
5 = 1+4,

6 = 2+4,
11 = 1+2+8,
7 = 1+2+4, 12 = 4+8,
8 = 8,
13 = 1+4+8,
9 = 1+8,
14 = 2+4+8,
10 = 2+8,
15 = 1+2+4+8

3. 規則性の排除

3

よって、右辺に 1 が入っている数字を 1 枚目のカードに書き、2 が入っている数字を2 枚目、4 が入っている数字を 3 枚目、8 が入っている数字を 4 枚目のカードにそれぞれ書くようにすれば、カードの中にあると言われたカードの一番小さい数 (1,2,4,8)を全部足せば元の数になることが納得してもらえるのではないかと思う。

規則性の排除3

しかし、この数当てゲームはかなりポピュラーなものとなってしまったので1 、次に少しこの変種について考えてみることにする。
例えば、各カードに書かれている数字には規則性があるので、そこから種がバレやすいとか、驚きが薄れやすい、ということが起こりやすい。2 節に書いたように、それは例えばカードに書く数字の並びをランダムにすることで多少は改善するのであるが、それでも 4 枚目 (もちろん何枚目に出すかもランダムにしてよい) のカードには 8 以
上のすべての数字が書いてあるということは割と見抜かれやすいし、1 枚目のカードの奇数のみというのはわかりやすいのではないだろうか。
これらの規則性をわかりにくくするには、別な数字との対応を用意しておいて、規則的な形は内幕に隠してしまう、という手が考えられる。簡単のため、カードを 1 枚減
らして、1 から 7 の数字と 3 枚のカードの場合で説明する。
この場合 2 節のようにすると、各カードの数字は1 枚目 : 1, 3, 5, 7,
2 枚目 : 2, 3, 6, 7,
3 枚目 : 4, 5, 6, 7(1)となるのであるが、客側に見せる表の数字と、ゲームの実行者のみ知る内幕の数字を例えば以下のように対応をつけておく:
内幕 (裏) : 1 2 3 4 5 6 7
客側 (表) : 5 3 1 7 2 4 6(2)この対応表を、ゲームのカードの裏側 (客の見えないところ) にでも書いておき、1 枚1そう思っていたのだが、情報系の教員に聞いてみたら、知らないという人もいたので、必ずしもそうでもないのかもしれない。

4. 枠を利用する方法

4目、2 枚目、3 枚目のカードの裏側には (1) をそのまま書き、表側にはその各数字に対応する客側の数字を書く。例えば、(2) の場合は以下のようになる:

1 枚目 : 5, 1, 2, 6,
2 枚目 : 3, 1, 4, 6,
3 枚目 : 7, 2, 4, 6

(3)

そして、入っていると言われたカードの裏に書かれている数字を使っての計算、すな
わち裏の一番小さい数字の和の計算をして、そして最終的に答えるときには、それに対応する客側の数字を言えばよい。
例えば客が覚えた数字が 2 の場合は、客側の 1 枚目と 3 枚目に含まれているので、その裏の計算である 1+4=5 を行う。その 5 に対する客側の数字 2 が答えとなる。
この方法の場合、客側の数字の集合がランダムな数字になるので、むしろポピュラーな数当ての原理を知っている人には新鮮に感じられるかもしれない。
実はこの方法を使う場合は、全部の数字の集合を見せてそこから選ばせるようにすれ
ば、別に 1 から 7 までの続きの数字でなくてもよく、それどころか数字である必要すらなく、文字や絵でも当てることができることになる。

4枠を利用する方法

3 節の対応表を利用するやり方はそれなりにいい方法であるが、和の計算を間違えたり、対応表から探すという手間が入るため、例えば子供がこれを行う場合は間違うことがあるかもしれない。それを解消するために、以前どこかで見たような記憶があるのだが、「枠」を利用して、計算をせずにそれを導きだすという方法がある。
これは、3 節と同じ 1 から 7 までの数字でいうと、次のようなことを行う方法である。

1. 表と裏の区別がつくやや厚い紙を 3 枚用意し、以下のように 8 つの場所を決め、それぞれ■の部分に穴を開ける:• 1 枚目:• 2 枚目:

■
■

■
■
■
■

■
■

4. 枠を利用する方法• 3 枚目:

■

5■

■

■

2. もう 1 枚同じ大きさの紙を用意し (これを 4 枚目と呼ぶことにする)、同じように 8 つの場所を取り、左上角を除く 7 つの場所に 7 つの数字を書く。この 7 つの数字は 1 から 7 である必要はなく、すべてが違っていれば何でもよい。例えば今以下のようにする:• 4 枚目:

894215424
1

3. 1 枚目のカードを表のまま 4 枚目のカードに重ねると、4 枚目のカードの 4 つの数字 (9, 24, 42, 1) が穴から見えるが、これを 1 枚目カードの表の穴の空いてな
い 4 箇所に書く (どこでもよい)。同じことを 2 枚目、3 枚目のカードに対しても行う:• 1 枚目:

429■
■

241■
■

• 2 枚目:

415241■■■■• 3 枚目:

1■

4■

8■

42■

これで準備は終了である。
ゲームを行うときは、最初に 4 枚目のカードを見せ、その 7 つの数字から一つを覚えてもらう。そして、1 枚目、2 枚目、3 枚目のカードにそれぞれそれが入っているかどうかを聞くことは同じである。
しかしこの場合は、1 枚目のカードに入っている、と言われたら、それを表のまま 4 枚目のカードに重ねて載せる。これは客には見えないように、机の上に重ねて置くとか、手で持つ場合は手前に向けて重ねるとよいだろう。そして入ってないと言われた場合は、1 枚目のカードを左右ひっくり返して裏にして 4 枚目に重ねる。

2 枚目のカードにも同じことを行い、1 枚目のカードの上に表、または裏にして重ねる。
3 枚目のカードは、入ってる場合は同じであるが、入ってない場合は左右をひっくり返すのではなく、上下をひっくり返して裏にして、2 枚目のカードに重ねる。
そうすると、重ねた 3 枚のカードの穴から、4 枚目のカードの数字が一つだけ見えていて、実はそれが客が覚えた数字となる、ということになっている。

4. 枠を利用する方法

6

例えば客が覚えた数字が 24 である場合は、1 枚目のカードには入っているので、表にして重ねると、以下のように穴から 4 つの数字が顔を出す:

94224
1

これは準備でやったように、1 枚目のカードに書いてある数字と同じである。

24 は 2 枚目にもあるから、これを表にして重ねると、4 枚目のカードの数字は以下の2 つだけが見えることになる。
24
1
これは、1 枚目と 2 枚目に共通に含まれる数字を意味する。

3 枚目には 24 は含まれないので、上下をひっくり返して裏にして重ねると、穴は上にくるので、結局右上の 24 のみが出てきて、それが元の数字となるわけである。
24

この方法も、原理はほぼ 3 節に述べたものと同じである。この 8 つの場所というのは、左上角が 0 で、あとは右に順に 1, 2, 3, そして下の段に 4, 5, 6, 7 という数字が (内幕側に) 並んでいると見ていることになっている:04

152637

よってカードに開けた穴は、1 枚目のものが 1,3,5,7 に、2 枚目のものが 2,3,6,7 に、3枚目のものが 4,5,6,7 に対応するので、これは丁度 (1) を意味している。
しかも、1 枚目を左右逆にして裏返すと、丁度穴の位置が 1,3,5,7 以外の位置 (0,2,4,6)にくるので、そのカードに含まれない場合にそれ以外の数を残すことになっている。

2 枚目も同様であるが、3 枚目は左右にひっくり返しても同じ位置に穴が来てしまうので、上下にひっくり返すことで丁度穴が反転される。

5. ランダムな枠の位置

7

これだと足し算をする必要もなくだいぶ楽であるが、4 × 2 マスの 7 箇所のものでやるよりも、4 × 4 マスの 15 箇所のカード 4 枚でやる方が効果は上がるだろう。
しかしこの場合も、やはり穴の位置が綺麗に並んでいることと、3 枚目だけ上下にひっくり返すという点が少し問題だろうと思われるので、今度はそれを解消することを考えてみる。

5ランダムな枠の位置

4 節では、左上角以外は 1,2,3,. . . ,7 を順番に並べて考えたが、これを順番に並べずにランダムに並べてしまえば、穴の位置の規則性はなくなる。しかしその並べ方は何でもいいわけではない。もし、4 節のものとは違い、裏にするときに 3 枚のカードとも左右をひっくり返す形にしたいならば、左右に裏返したときに、表の穴の位置と裏の穴の位置が一つも重ならないことという条件を満たす必要がある。穴は 4 つなので、この条件は、表の穴の位置と裏返した穴の位置で 8 箇所全部が埋まることと言い換えることもできる。
例えば、

273

1645のようにランダムに 1 から 7 までの数字を並べたとすると、1 枚目のカードを作るために 1,3,5,7 の位置に穴をあけると、■■■■となってしまい、上の 2 つの穴が左右に裏返して重なってしまうので、このような配置ではいけないことになる。では、どのように配置すればいいだろうか。

5. ランダムな枠の位置

8

左右に裏返す場合、左右を分ける中央の縦の線が対称軸となるが、上の条件を考えると、この対称軸に関して対称な位置のマスは同時に穴を空けてはいけないし、その対称な位置のマスは必ずどちらか一方は穴が空かないといけないことにもなる。
つまり、対称な位置に 1,3,5,7 のうち 2 つの数字を置いてはいけないし、対称な位置のどちらかには必ず 1,3,5,7 のうちいずれか一つを置かなければいけないことになる。
2 枚目、3 枚目も考えれば、2,3,6,7 や 4,5,6,7 についても同じことが言えることになるが、これらを総合すると結局どうなるだろうか。
例えば、下のような位置に 1 を置いた場合を考えてみる。

×1

その対称な位置 × には、1 枚目のカードを考えると 3,5,7 は置けないので、2,4,6 のいずれかを置くことになる。2 枚目のカードを考えると 2,3,6,7 は置けるが、それ以外はだめで、3 枚目のカードを考えると 4,5,6,7 はよくてそれ以外はだめ、となる。結局、これらの条件をすべて満たすのは 6 だけということになる。
前の 2 進法で考えると、例えば 2 枚目のカードは 2 進法の下から 2 桁目を意味し、その表に書かれる数字はその桁が 1 のもの、それ以外の数字はその桁が 0 のものを意味していた。今、1 は下から 2 桁目の数字は 0 であり、その場合にはその桁が 0 の数字、つまり 1 と同じグループの数字 3,5,7 は × には置けず、その桁が 1 の数字 2,4,6 しか置けない、ということになっている。
逆に 1 の一番下の桁の数字は 1 であり、× にはその桁が 0 である数字しか置けないことになっている。よって結局 1=001(2) の場合は、各桁の 0 と 1 をすべて入れかえた
110(2)=6 が × に当てはまることになる。これはどの場所、どの数字でも同じなので、結局次のことがわかる。
裏返しの軸に関する対称な位置には、2 進法での各桁の 0 と 1 を入れ替えてできる数字を置くこと (ただし左上角は 0 と考える)
なお、各桁の 0 と 1 を入れ換えた数字と元の数字の和を考えると、

001(2) + 110(2) = 111(2) = 7のように、すべての桁が 1 になるので、結局この規則は

5. ランダムな枠の位置

9

裏返しの軸に関する対称な位置には、x と (7 − x) を置くという形に言い換えることもできる2 。

1 から 15 までの 4×4 マスの場合には、1111(2)=15 なので、x と (15 − x) を対称な位置に置けばいい。
このような置き方は、もちろん一通りではなくたくさんある。左上角は 0 なので、右上角は 7 と固定になり、後は対称な位置の組は 3 箇所あり、そこに (1,6), (2,5), (3,4)の組を置いて、それぞれ右に置くか左に置くかを選択できるので、それぞれ 2 通りあるので、結局 3! × 23 = 48 通りあることになる。例えば次のようなものでよい:

6324571

この場合、これに応じて穴を空けると次のようになる:• 1 枚目:■• 2 枚目:■■• 3 枚目:

■

■

■

■
■

■

■
■

■

一旦穴さえ空けてしまえば、4 枚目のカードは数字でなくても何でもよく、それに応じて 4 節で説明したように、1 から 3 枚目のカードの表を 4 枚目のカードに重ねて穴の空いているところに見えるものをそのカードの表の余白のマスに書いていけばよい。

1 から 15 の 4 × 4 マスの場合は、全部で 7! × 27 = 645120 通りあるが、例えば以下のようなものがそれを満たす:

1361121281537141015294

偶然であるが、この関係はサイコロの表と裏の面の数字の関係と同じである。

6. 3 進法を利用した数当て• 1 枚目:■■• 2 枚目:

■
■
■
■

■

• 3 枚目:• 4 枚目:

■
■

■

■
■

■
■
■
■

■
■

10

■
■

(2,3,6,7,10,11,14,15)■■■(4,5,6,7,12,13,14,15)

■

■

■
■

■

■

(1,3,5,7,9,11,13,15)■■■(8,9,10,11,12,13,14,15)

微妙に規則性 (対称性) が見えなくもないが、これを利用すれば 4 × 4 の数当て (数でなくてもよい) もできるようになる。

63 進法を利用した数当て

ここまでは、原理的に 2 進法を利用した数当ての考察をしてきたが、今度は 3 進法を利用することについて考えてみたい。

3 進法なら 2 桁で 0 から 8 まで、3 桁で 0 から 26 までの数字を表現できるので、より少ないカード (回数) で多くの数から一つを選び出すことができる可能性がある。
しかし、各桁が 0, 1, 2 の数で分類してそれぞれでカードを作ってしまうと、むしろ 2進法の場合よりカードが増えてしまい、カードに書かれる数字の個数も少なくなるのでおもしろくないものになる。例えば、1 から 8 の数は 3 進法 2 桁で書けるが、• 下の桁が 0: 3, 6

6. 3 進法を利用した数当て

11• 下の桁が 1: 1, 4, 7
• 下の桁が 2: 2, 5, 8
• 上の桁が 0: 1, 2
• 上の桁が 1: 3, 4, 5
• 上の桁が 2: 6, 7, 8の 6 枚のカードを使うとすると、各カードに書かれている数字が少ないので、そこから数字を絞りこむことは容易であるように見えてしまうので、驚きを持たれにくくなり、「数当て」としては成立しなくなってしまう。
これを解消するには例えば、カードは下の桁で 1 枚、上の桁で 1 枚とし、• 下の桁のカード: 1, 2, 3, 4, 5, 6, 7, 8
• 上の桁のカード: 1, 2, 3, 4, 5, 6, 7, 8のように各カードにすべての数字を書いて、その桁の数字によってそのカード内で区別ができるようにする。実際には色分けして、例えば太字の数字は赤、下線の数字は青、その他の数字は黒、のようにするといいだろう。
そして、答えてもらうときは、覚えた数字が何色で書いてあるかを答えてもらう。そして、それぞれのカードのその色の一番小さい数字を足せばいいわけである。例えば
5 の数字を考える場合、1 枚目のカードでは下線 (青) なので、その一番小さい数字の2、2 枚目のカードでは太字 (赤) なので、その一番小さい数字の 3、その 2 つを足して 5 となるわけである。
もちろん規則性がわからないようにランダムに配置した方がよいだろうが、これで 1枚のカードに書かれている数は多くなったが、やはりそれぞれの種類の数がそれほど多くないので、3 桁、4 桁のような多い数でやらないと効果はあがりにくいだろう。
元々このような数当てが驚きを与えるのは、客側が提示したいくつかの条件から、客側にとってはそれを満たす数を探し出すのが一見難しいのに、それを即座に言い当てる

7. 最後に12からであるが、1 から 8 くらいであると、1 枚目が下線 (青) で、2 枚目が太字 (赤) であるものを見つけるのは全然難しくはないので、これくらいの数の範囲では数当てとしては意味がないことになる。
極端な話、1 から 8 の数は 9 進法で 1 桁になるので、それを 8 通りの色に塗り分けてしまえば 1 枚のカードで済むことになるが、それで何色かと聞くのは、どの数字かと聞いていることと全く同じで、「数当て」にはなってない。
このように、数当ての原理を 3 進法、より一般に n 進法に拡張することもできるが、その場合は確かに使うカードは 2 進法の場合よりも少なくできるかもれないが、数当てとして意味があるようなものにするためにはかなり多くの選択の範囲を用意する必要があり、そうなると例えば客がカードから数字を探すのに時間がかかるなど、実際の数当ての作業がかなり大変になってしまうので、あまりよくはなさそうである。
この 3 進法の数当ては、ポピュラーな数当ての原理を知っている人には多少新鮮味はあるかもしれないが、上のように考えてみると、数当てとしてはやはり 2 進法のものの方が妥当なようにも思える。

7

最後に私が初めてこの数当てに出会ったのは、多分小学生の頃だったと思う。もちろんその当時は不思議だという気持ちしかなく、その原理や理屈については何もわかってはいなかった。
今回、もしかして子供向けに使えるかなと思って簡単に考察し直してみたが、単に子供を客としてやるよりも、子供にも作ってもらう方がよさそうなので、その点では、理屈はちょっと面倒だけど枠を利用するものはそれなりにおもしろがってもらえるかもしれない。