1. 10は、たしかに作りやすかった
四つの数字を (a, b, c, d) とする。
使える演算は、
の四種類。数字の順序は自由に並べ替え、 括弧も自由につける。
四項の二項演算には、括弧の構造が5種類存在する。
演算子の選択は 4³ = 64 通りであり、
四つの数字がすべて異なれば順列は24通り。
したがって、生の探索候補は最大で
通りになる。
途中計算は浮動小数点ではなく既約分数として保持し、 誤差によって「ほぼ10」が10と判定されないようにした。
まず (a,b,c,d) をそれぞれ1から9まで動かした
9⁴ = 6561 組について、
どの整数が作れるのかを調べた。
結果、もっとも作りやすかったのは10ではなかった。
1位は2で、6561組中6549組。 続いて3、4、6、1、5、7と並び、10は8位だった。
つまり10は最強ではない。 しかし、十分に「作りやすい数字」ではあった。
2. 数字の順番を無視してみる
ただし、この6561組には問題がある。
1234と4321は、10パズルとして見れば同じ問題である。
そこで、
だけを考えることにした。
この495種類のうち、10を作れるものは447種類。
逆に言えば、10を作れない組は48種類しかない。
Discovery
四つの数字がすべて異なる組は、 一つ残らず10を作ることができた。
1から9までの異なる四数字の選び方は126通りある。
その126通りすべてが10を作れる。
10を作れない48組には、 必ず同じ数字が二つ以上含まれていた。
3. 重複すると、表現の自由度が減る
理由の一端は分かりやすい。
| 型 | 順列 | 生の探索候補 |
|---|---|---|
| abcd | 24 | 7680 |
| aabc | 12 | 3840 |
| aabb | 6 | 1920 |
| aaab | 4 | 1280 |
| aaaa | 1 | 320 |
実際、10を作れない48組を分類すると、
- 全部異なる:0組
- 1ペア:22組
- 2ペア:8組
- 3個同じ:14組
- 全部同じ:4組
数字の重複によって「式の自由度」が失われ、 作れる整数に穴が開きやすくなる。
これはかなり自然な説明に見えた。
しかし、ここから話がおかしくなっていく。
4. 「表現力が低いから10を作れない」わけではない
各数字組について、10だけを見るのではなく 「整数を全部で何種類作れるか」を数えてみた。
予想通り、同じ数字ばかりの組は 作れる整数も少ない傾向があった。
ところが10を作れない組の中にも、
6899、5799、
5788、3779、
4899……
といった、非常に多くの整数を作れる組が存在した。
「10を作れない組は、そもそも何も作れない」 わけではない。
問題は、作れる整数の「数」ではなく、
どこに穴が開いているか
らしい。
そこで、10を作れない48組について、 1から24までの各整数が作れるかを調べた。
ここで、一匹の妙な存在が現れた。
a strange combination
2257という奇妙な組
2, 2, 5, 7。
この四数字は、1から24までの整数のうち、
10以外をすべて作ることができる。
1も作れる。2も3も4も作れる。9も作れる。
11も12も作れる。 20も21も22も23も24も作れる。
しかし10だけは作れない。
この範囲で欠けているのは −10 と +10だけだった。
2257はむしろ非常に密に整数を生成している。
その中に、10という一点だけが穴として残っている。
6. 「作れる回数」を数えてみる
そこで今度は、整数が作れるかどうかだけではなく、 探索中にその整数へ何回到達したかを数えた。
| 整数 | 到達回数 |
|---|---|
| 8 | 66 |
| 9 | 2 |
| 10 | 0 |
| 11 | 24 |
| 12 | 138 |
| 13 | 30 |
| 14 | 1 |
10は0。
しかし興味深いことに、14もわずか1回しか現れない。
その一本の式は、
つまり 5 / 2 − 2 = 1 / 2 を作り、
7 ÷ (1 / 2) = 14 とする。
普通、人間が2257から14を作ろうとすれば、
7 × 2 = 14 を最初に考えたくなる。
しかしそれでは残った2と5を消費できない。
実際の唯一の経路は、 「残り三数字から1/2を作って7をそれで割る」という、 かなり逆向きの発想を要求するものだった。
−14にも同様に一本だけの道があり、
となる。
2257には、こうした非常に細い道が存在する。
9には2本。14には1本。
それでも10には、一本もない。
7. では、10の周辺が薄いのか
2257だけを見れば、そう考えたくなる。
9は2回しか作れず、10は0回。
10周辺はもともと「薄い領域」であり、 その谷底が偶然0になったのではないか。
そこで同じく10を作れず、しかも1〜24の大部分を作れる
1399、3669、
3779 を比較した。
すると、この説明も崩れた。
10のすぐ近くには何十、何百という経路が存在する。
それでも10だけは0になる。
22571013998, 10, 23366910, 19, 23377910, 16, 21各数字組は、それぞれ異なる場所に穴を持っている。
8. 数字が大きいと、結果が外へ飛んでいく
比較対象として1234を見ると、別の特徴があった。
4:303 5:234 6:308
小さい整数に非常に多くの経路が集中していた。
一方3779などでは、1〜24の頻度が全体的に低い。
そこで各数字組について、
生成された整数 x を到達回数で重み付けし、
を計算した。
| 1234 | 7.977 |
| 2257 | 23.975 |
| 1399 | 44.862 |
| 3669 | 68.145 |
| 3779 | 105.689 |
3779は1234の十倍以上、外側へ結果を飛ばしている。
したがって、3779の1〜24が薄く見えたのは、 少なくとも一部は単なる「観測窓」の問題だった。
9. 意外にきれいだった「生成値のスケール」
では、生成値の大きさは入力数字とどのような関係にあるのだろう。
495組すべてを用いて、
というモデルをlog-log回帰した。
比較として四数字の積を用いると、
で、R² = 0.94813 だった。
積も強い。
しかし意外なことに、単純な「四数字の和」のほうが 生成値の典型的な大きさをよく説明した。
10. それでも10の穴は消えなかった
では、10を作れない組は、 単に通常より外側へ結果を飛ばしやすいのだろうか。
先ほどの回帰を利用し、
という正規化量を作った。
確かに10不可組は、平均して約8%ほど外側へ散りやすい。
しかし、その差は決定的ではない。
2257のように中央領域をほぼ完全に埋めながら 10だけを落とす現象を、この値だけで説明することは難しい。
11. 結局、「10を作れない組」とは何だったのか
最初は、もっときれいな答えがあると思っていた。
偶数と奇数の個数。数字の和。数字の積。 重複の数。作れる整数の総数。生成値の広がり。
どこかに一本の境界線があって、 その向こう側に1177や2257が並んでいるのではないか。
しかし、少なくとも今回調べた範囲では、 そのような単純な性質は見つからなかった。
数字の重複
数字が重なると順列の自由度が減り、 生成可能な式の構造も縮む。
入力数字のスケール
数字が大きくなると生成値は外側へ散り、 小さい整数領域は相対的に疎になる。
算術的な相性
途中で作れる分数や分割、 最後の演算への接続可能性が穴の位置を左右する。
これが最後まで残った。
2257では10。 1399では8、10、23。 3669では10、19、23。 3779では10、16、21。
四つの数字が、途中でどの分数を作れるか。 どの二群に分割できるか。 最後の一回の加減乗除で目的値へ接続できるか。
そうした離散的な構造の積み重ねによって、 数直線上に小さな穴が残る。
10は、その穴の一つなのである。
12. 「きれいな法則がなかった」という結果
これは少し残念な結果でもある。
「10を作れない組には、実はこんな共通法則がある」
という一行で終われたら、とても気持ちがいい。
しかし実際に全探索してみると、 現象はそれほど素直ではなかった。
それでも、何も分からなかったわけではない。
1から24まで、ほとんど何でも作れる。
非常に細い道を使えば14すら作れる。
しかし10だけは、どうしても作れない。
最初の問いは、
「10は作りやすい数字なのか?」
だった。
答えは、たしかに作りやすい。
だが、それ以上に面白かったのは、
作りやすいはずの10が、なぜかそこだけ抜け落ちることがある。
連続的な「作りやすさ」の中に、 四則演算の離散的な構造が小さな穴を開ける。
その穴には、単純な統計量だけでは説明できない個性がある。
1177から始まった小さな10パズルは、 最後にはそんな景色を見せてくれた。
実際に試してみる
10 Puzzle Solver →