← ギャラリーへ

アポロニウスのガスケット — 隙間に入る円は、四則演算だけで決まる

アポロニウスのガスケット。大きな円の中に接する円が入れ子で無限に詰まっていく
互いに接する円の隙間に、接する円を入れ続けた形(曲率900までの2810個)。太い藍=大きい円/細い茜=小さい円。隙間はいつも3つの円で囲まれていて、そこに入る円はいつでもただ1つに決まる

なにか

大小のコインを平らに詰めたとき、太いパイプの束の隙間に細いパイプを差すとき、泡が寄り集まったとき——「3つに接する円」はいつでもただ1つに決まる(アポロニウスの問題)。その円を入れると新しい隙間が3つできて、また入る。無限に続くこの詰め方がアポロニウスのガスケット。

この形の凄みは、円と円の交点を解かなくても隙間の円が出るところ。デカルトの円定理——4つが互いに接するとき曲率 k=1/r(包む円だけ符号を負に)が

(k₁+k₂+k₃+k₄)² = 2(k₁²+k₂²+k₃²+k₄²)
さらに中心についても同じ形が成り立つ(複素数 z を中心として): (k₁z₁+…+k₄z₄)² = 2((k₁z₁)²+…+(k₄z₄)²)

——を k₄ について解くと k₄′ = 2(k₁+k₂+k₃) − k₄。中心も同じ式で出る。つまり足し算と引き算だけ。だから隙間を埋める作業は「4つの数の組を1つずつ入れ替えていく」ことに化ける。

円の大きさには「入れない番号」がある

出発を曲率 (−1, 2, 2, 3)(半径1の外円+半径1/2 が2つ+半径1/3)にとると、上の式は整数から整数を作るので、出てくる曲率は永久に整数のまま(中心の k·z もガウス整数のまま)=整数アポロニウス・ガスケット。丸め誤差ゼロで定理を検査できる。

そこで曲率を 20000 まで全部(164,255個)並べてみると、妙なことに気づく。24 で割った余りが 8 種類しかない: 2, 3, 6, 11, 14, 15, 18, 23。例外はゼロ。裏を返せば、余りが 0,1,4,5,7,… になる大きさの円はこの隙間には絶対に入れない。60以下で実際に現れない曲率を並べると 4 5 7 8 9 10 12 13 16 17 19 20 21 22 24 25 28 …

「では許された余りの大きさは全部現れるのか」——これはlocal-global 予想と呼ばれ、長く信じられていたが 2023 年に反例が見つかった(Haag–Kertzer–Rickards–Stange)。円を詰めるだけの話が、いまも動いている数論につながっている。

分数の詰まり方が、円の詰まり方だった

数直線の上に分数ごとの円を置いたフォード円。分母が小さい分数の上には大きい円が乗る
数直線 0〜2 の上に、分数 p/q ごとに半径 1/(2q²) の円を置いた(フォード円)。整数の上がいちばん大きく、1/2 の上が次、その隙間に 1/3, 2/3 … が入る。これも接する円だけでできたアポロニウスのガスケット

驚くのは接し方の規則。p/q と r/s の円が接するのは |ps − qr| = 1 のときに限る——つまりファレイ数列で隣同士のとき。分母26までの213個・22,578組すべてで、幾何(中心距離=半径の和)と整数の条件(|ps−qr|=1)は1組も食い違わなかった

「分数がどれくらい詰まっているか」を目で見る道具がこれ。円が大きい=分母が小さい=近似しやすい分数。そして黄金角が「いちばん近似しにくい数」であることは、この絵で言えばどの大きい円からも遠い場所にいるということだった。

どれくらい詰まっているのか

曲率 K 以下の円の数は N(K) ∝ Kδ で増える。この δ がガスケットの次元(円の集合のハウスドルフ次元)で、文献値は 1.3057。数えると 曲率3000まで で 1.294、20000まで で 1.2985、120000まで で 1.2999——有限で切ると必ず下から近づく(小さい円を数え落とすぶん傾きが甘くなる)。線(1次元)より詰まっていて面(2次元)にはならない、という中間の値。

★自分で動かす

下の絵はこの場で計算している(あらかじめ描いた絵の切り替えではない)。上の図を作っているのと同じ 1 本のコード gallery/assets/apollonian-live.js を、記事の中で呼んでいる。曲率の上限を上げていくと隙間が埋まっていくのに、デカルトの残差はずっと厳密に 0 のまま——整数だけで作っているからこうなる。

円の数
デカルトの2式の残差
整数でない円
24 で割った余り
重なりの最悪
詰め込み指数 δ

スライダーで決めた曲率の上限までのアポロニウス・ガスケット

残差は「小さい」ではなくちょうど 0と出る。曲率も中心(k·z)も整数で持ち回しているので、定理の検査が引き算だけで済むから。上限を上げると δ は文献値 1.3057 に向かうが、上限が低いうちは届かない——足りないのは理論ではなく円の数。泡の法則ボロノイと違って、ここでは隙間の埋め方が一意に決まる

どう作ったか

四つ組を1つずつ入れ替える幅優先探索で、曲率が上限を超えたら止める。曲率と中心(k·z)を整数で持ち回すので、定理の検査は「引き算して 0 か」で済む。機械検査は12件: ①出発の四つ組でデカルトの2式が厳密に0 ②再帰で生まれた12,459個の四つ組すべてでも厳密に0 ③曲率と中心が164,256個すべて整数 ④24で割った余りが8種類だけ(例外ゼロ)⑤円が重ならない(最悪の食い込み 2×10⁻¹⁶=丸め誤差の底)⑥世代ごとの新しい円が 4·3g−1 ⑦次元 δ が 1.25〜1.32 ⑧フォード円の接触=ファレイ隣接(22,578組で食い違いゼロ)⑨記事のドラッグ版を偽DOMの上で実際に走らせる8項目(★曲率の上限を8通り動かしてもデカルトの残差がちょうど0で全部整数のまま/詰め込み指数が上限とともに文献値へ寄る=低いうちは届かないと正直に出る/見えない大きさで描かなかった円の数も出す)⑩出荷SVGとドラッグ版が同じ1本のコードを共有していること ⑪出荷SVG2枚。ドラッグ版の検査の実体は tools/apollonian-live-test.js

→ ハニカム(同じ「隙間なく詰める」の、こちらは全部同じ大きさ)

→ 双曲タイリング(円が円に接する世界のもうひとつの姿)

→ 黄金角の生まれ方(近似しにくい数=どの大きい円からも遠い場所)

出典

数理
R. Descartes (1643) の円定理。中心についての複素数版は J. C. Lagarias, C. L. Mallows, A. R. Wilks, "Beyond the Descartes circle theorem", Amer. Math. Monthly 109 (2002) 338。整数ガスケットの mod 24 の制限と local-global 予想は R. Graham, J. Lagarias, C. Mallows, A. Wilks, C. Yan, "Apollonian circle packings: number theory", J. Number Theory 100 (2003) 1 ほか。2023年の反例は S. Haag, C. Kertzer, J. Rickards, K. Stange, arXiv:2307.02749(この反例そのものは当ギャラリーでは未検証・文献として置く)。フォード円は L. R. Ford (1938)
生成
generators/apollonian.js(デカルトの2式による四つ組の入れ替え・曲率と中心を整数で保持・接触と重なりの判定・詰め込み指数のフィット・ガスケットとフォード円の作図。依存ゼロ・乱数ゼロ)ガスケットの数理は gallery/assets/apollonian-live.js に置き、出荷SVGの生成器と記事のドラッグ版が同じ1本を共有している