3n+1 の構造 — ペア分解で見るコラッツ写像

高校数学+二進法の知識で読める要約

§0 前提:コラッツ予想とは

任意の正の整数 n に対して、次の操作を繰り返す:

「どんな数から始めても、いつか必ず 1 に到達する」——これがコラッツ予想。1937年に提起されて以来、約90年間未解決。

例:n = 27
27 → 82 → 41 → 124 → 62 → 31 → ... → 最高9232まで上がってから → ... → 1 に到達(全111ステップ)

この論文が問うのは:3n+1 の計算の「中身」は何か? なぜ x=3 だけが特別なのか?

§1 ファスナー構造:数を2ビットずつ切る

任意の正の整数は二進法で書ける。それを2ビットずつ区切ってペアにする。

例:n = 27
27 = 11011(二進) → 桁数が奇数なので先頭に0を補う → 011011

2ビットずつ切る: (01) (10) (11)

各ペアの左ビット(m4):0, 1, 1 → 並べると 011
各ペアの右ビット(m6):1, 0, 1 → 並べると 101

ここで重要なのがファスナー構造。m4 と m6 を交互に噛み合わせると元の数に戻る:

m4 = 0_1_1_ = 0·1·1·0·1·1 = 011011 = 27 ✓
m6 = _1_0_1

もっと単純な例で見ると:

m4 だけ(左ビット)
1 0 1 0 = 1010

m6 だけ(右ビット)
0 1 0 1 = 0101

ファスナーで噛み合わせる
1111 = 1111

1010 + 0101 = 1111

つまりどんな数も、m4 と m6 の2本のビット列に分解でき、ファスナーで元に戻せる。これがペア分解の基本。

§2 ペアの4種類とGPK

2ビットのペアは4種類しかない。それぞれに名前をつける:

ペア名前意味足し算での役割
(0, 0)K (Kill) 両方0繰り上がりを止める
(0, 1)P (Propagate) 片方だけ1繰り上がりを通す
(1, 0)P (Propagate) 片方だけ1繰り上がりを通す
(1, 1)G (Generate) 両方1繰り上がりを生む

この G / P / K の分類は、半導体の加算回路(carry-lookahead adder)で1960年代から使われている標準的な概念。

例:n = 27 = 011011
ペア列:(0,1), (1,0), (1,1)
GPK :P, P, G

→ ペアを見るだけでGPKが分かる。計算不要。ただ読むだけ。

§3 3n+1 の中身:掛け算せずに表を引く

3n+1 = 2n + n + 1。ここで 2n は n を1ビット左にずらしたもの。つまり:

3n + 1 = (nを1ビットずらしたもの)+(n)+(1)

この足し算は、ペアごとに分解できる。各ペア位置で「どのビットとどのビットを足すか」が決まっていて、結果は16通りしかない

なぜ16通りか:

「状態」とは何か

表を引くには、入力ペアの他に状態が必要。状態は4つだけ:

ラベルcinai-1意味
S000繰り上がりなし、直前の入力ペアの上ビット=0
S101繰り上がりなし、直前の入力ペアの上ビット=1
S210繰り上がりあり、直前の入力ペアの上ビット=0
S311繰り上がりあり、直前の入力ペアの上ビット=1

cin = 直前のペアから来た繰り上がり(carry in)。 ai-1 = 直前に処理した入力ペア(a, b)のa。 cout = 今のペアから出る繰り上がり(carry out)→ 次のペアの cin になる。

初期状態 = S2(+1 による繰り上がりあり、前のペアがないので上ビット=0)。
次の状態は、表の出力(繰り上がりが出たか)と今の入力ペアの上ビットで決まる。表を引けば自動的にわかる。

この16通りを全部書き出したのがTable 5.1(論文の核心)。

ペアの並び順について:ここから「一の位から」の順に変わる

二進法の数を書くとき、普通は大きい桁を左に書く(十進法と同じ)。これをMSB順(Most Significant Bit = 最上位ビットが先)という。
逆に、一の位(最小の桁)から並べる順をLSB順(Least Significant Bit = 最下位ビットが先)という。

§1–2 では人間が読みやすいMSB順で書いた:
27 = 011011(01)(10)(11) → GPK = P, P, G

しかし足し算の繰り上がりは一の位から上の桁へ順に伝わる。筆算で右端から計算するのと全く同じ理由で、スキャン(表引き)は一の位のペアから順に処理する

以降、ペア列はすべてLSB順(pair 0 = 一の位側のペア)で記述する。
同じ 27 なら (11)(10)(01) = G, P, P の順になる。§1–2 の P, P, G と並びが逆転することに注意。
例:n = 71 → n' = 107 を表引きだけで求める
71 = 01000111₂ → ペア(LSB順):(1,1), (0,1), (0,0), (0,1)
GPK:G, P, K, P

初期状態 = S2

pair 0: G(1,1) + S2 → Case 15 → 出力 P(1,0), carry=1 → 次: S3 ← G破壊、キャリー生成
pair 1: P(0,1) + S3 → Case 8 → 出力 P(0,1), carry=1 → 次: S2 ← キャリーが通過
pair 2: K(0,0) + S2 → Case 3 → 出力 P(0,1), carry=0 → 次: S0 ← Kがキャリーを止める
pair 3: P(0,1) + S0 → Case 5 → 出力 G(1,1), carry=0 ← P→G生成!連鎖しない

出力 = 11010110₂ = 214 → 末尾に0が1個 → d=1 → 214 ÷ 2 = 107

検算:(3×71+1)/2 = 214/2 = 107 ✓
掛け算も足し算もしていない。表を4回引いただけ。

以降、本説明では「奇数 n → 奇数 n'」を1ステップと数える(3n+1 と ÷2d をまとめて1回)。

Table 5.1:3n+1 の完全なスキャン遷移表

これが表の全体。この要約の全ての主張はこの表を読めば検証できる。

#入力GPK cinai-1 cout 出力出力GPK 注目点
1(0,0)K000(0,0)K
2(0,0)K010(0,1)P
3(0,0)K100(0,1)P
4(0,0)K110(1,0)PK→Gなし
5(0,1)P000(1,1)GP→G, cout=0
6(0,1)P011(0,0)K
7(0,1)P101(0,0)K
8(0,1)P111(0,1)P
9(1,0)P000(1,0)P
10(1,0)P010(1,1)GP→G, cout=0
11(1,0)P100(1,1)GP→G, cout=0
12(1,0)P111(0,0)K
13(1,1)G001(0,1)PG→P, cout=1
14(1,1)G011(1,0)PG→P, cout=1
15(1,1)G101(1,0)PG→P, cout=1
16(1,1)G111(1,1)GG→G, cout=1

この表から直接読み取れること:
Case 13–16:G入力 → cout=1 が全4ケース(無条件キャリー生成)
Case 1–4:K入力 → cout=0 が全4ケース、出力にGなし(K→G不可能)
Case 5, 10, 11:P→G — ただし cout=0(生成は連鎖しない)

§4 n → n' の完全なフロー

n
ペア分解
各ペアのGPK分類 (読むだけ)
Table 5.1 で表引き(16パターン)
3n+1 のペア列
末尾ゼロを数えて d を決定
÷ 2d(ゼロを除去)
d が奇数なら再ペアリング (Table 5.2, ファスナーの読み直し)
n'
外部情報は一切不要。n のビット列が n' のビット列を完全に決定する。
GPKは「追加成果物」ではなく、入力ペアに内在する属性。読むだけ。

※ このフロー図では「n → ペア分解」と「n'」を整数として書いているが、実際の計算では整数に戻す工程は不要。スキャンの入力はペア列、出力もペア列。÷2d はペアの除去と境界シフト。re-pairing もペア→ペア。次のステップの入力もペア列。ペア列のまま、1に到達するまで進行する。結合(ファスナーを閉じる)は人間が数を確認したいときだけ必要になる表示上の操作であり、計算の一部ではない。

§5 3n+1 は完全に「閉じている」

フロー全体で、ペアの種類はこの4種の外に出ない

入力 {K, P01, P10, G} スキャン出力 {K, P01, P10, G} re-pairing {K, P01, P10, G} n' {K, P01, P10, G}

「閉じている」は「毎回4種が全部登場する」ではない。各ステップで使われる種類は異なりうるが、5番目の型が発生することは絶対にない。出力の n' をまた同じ表に入れれば次の n'' が出る。その次も同じ表。永久に同じ4種と同じ16行の表で回り続ける。これが閉鎖。

しかも、以下の性質が例外なく成り立つ:

性質3n+1 では意味
G → 繰り上がり出力 常に1(全4ケース) Gは必ず繰り上がりを生む
K → 繰り上がり出力 常に0(全4ケース) Kは必ず繰り上がりを止める
K が G に変わるか 絶対に起きない 一度KになったらGに戻れない

「常に」「絶対に」は比喩ではない。16行の表を全部調べた結果、例外がゼロ

これは「傾向」や「確率」ではなく、恒等式(どんなnでも、どんなビット長でも、毎回成立する代数的事実)。

§6 5n+1 と比べると何が違うか

同じ手順で 5n+1 の表も作れる(5n+1 = 4n + n + 1、シフト量2ビット)。作って比べると:

性質 3n+1 5n+1
表のサイズ 16行(4状態×4入力) 32行(8状態×4入力)
G → 繰り上がり = 常に1? はい(全件) いいえ(1状態で0になる)
K → 繰り上がり = 常に0? はい(全件) いいえ(1状態で1になる)
K → G の変化 起きない 起きる(2状態で発生)
逃げ道 ない ある
1以外のサイクル なし(構造的に排除) 5n+1では存在(例:13→33→83→13;他のxは未検証)

両方の表を実際に構成し、奇数500個で全件検証済み

ここが核心:同じ手順で作った2つの表の中身が、質的に違う。
3n+1 では「逃げ道がない」。5n+1 では「逃げ道がある」。
この差がサイクルの有無と対応している。

§7 なぜ「閉じている」と逃げられないのか

成長の条件

3n+1 で数が大きくなるには、÷2 で1回しか割れない(d=1)必要がある。d=1 になるのは、一番下のペアが G(1,1) のときだけ。

※ なぜ G(1,1) だけなのか — Syracuse 関数は奇数→奇数の写像なので、入力 n は常に奇数。最下位ビットは必ず1になるため、最下位ペアは P(0,1) か G(1,1) の二択しかない(K(0,0) と P(1,0) は最下位ビットが0なので最下位ペアになれない)。P(0,1) だと 3n+1 の末尾に0が2個以上並び d≥2 で縮小、G(1,1) だと末尾の0はちょうど1個で d=1。

成長すると何が起きるか

一番下のペアが G(1,1) で表を引くと(Case 15):

つまり「成長の原因(G)」が「成長を壊す繰り上がり」を必ず生む。これが表から逃れようがない。

壊れた後、復活できるか?

経路可能か性質
K → G(Killから復活) 不可能 表の全16行に K→G なし
P → G(Propagateから生成) 可能(3ケース) ただし cout=0 で連鎖しない

生成と破壊の非対称性

G の生成(P→G)G の破壊(G→P)
規模1個ずつ連鎖(隣の橋も壊す)
繰り上がり0(波及しない)1(波及する)
燃料Pを消費する

破壊は連鎖するが、生成は連鎖しない。この非対称性は16行の表から読み取れる代数的事実。

scan + re-pairing を合わせた構造的上限(net ≤ 0)

Table 5.1 と Table 5.2 を合わせて読むと、最左 G-block の1ステップあたりのネット変化に上限がある:

フェーズ影響根拠
Scan 先頭 G を除去 → −1 Table 5.1 (Lemma 5.1(b))
Re-pairing 末尾で最大 +1 伸長 Table 5.2 (Lemma 5.6)
1ステップ合計 ≤ 0 全ケース、例外なし

これは平均ではなく最悪ケースの上限。max(X) ≤ 0 であり、E[X] < 0 ではない。net +1 となる配列は存在しない。

§7.5 なぜ 1 への収束は構造的に不可避か

§7 で示したのは1回の scan 内の話。しかし re-pairing(Table 5.2)が全部ひっくり返すのでは? この問いに3点で答える。

1. re-pairing は閉鎖性を壊さない

re-pairing の出力も同じ4種のペア(Table 5.2 で全16ケース確認可能)。スキャン → 除算 → re-pairing → 次のスキャン、どの段階でも5番目の型は現れない。§7 で示した表の性質(G→cout=1、K→G不可能、P→Gはcout=0)は、re-pairing 後の n' にもそのまま適用される。

2. 連続 d=1 には算術的上限がある(Corollary 5.3)

表とは独立に、剰余算術だけで導ける事実:

L 回連続 d=1 には n ≡ 2L+1−1 (mod 2L+1) が必要、
すなわち n の下位 L+1 ビットがすべて 1 でなければならない。

n のビット数は高々 ⌊log2 n⌋ + 1 なので、
連続 d=1 の最大回数 ≤ ⌊log2 n⌋。

成長(d=1)は必ず有限回で止まる。これは GPK とも表とも無関係な算術的事実。

3. 有限の箱の中に逃げ場はない

d=1 が持続できないので軌道は発散しない(有界)。閉鎖性により、軌道がどこにいても同じ表・同じ制約が適用される(スケール不変)。有界な軌道が閉じたスケール不変な系の中で取りうる終状態は、サイクルだけ。x=3 では構造的に許容されるサイクルは n=1 の不動点のみ(§8.4)。

n=1 はペア P(0,1)、d=2、n'=1。不動点。
軌道は一時的に大きく増加しうる(例:n=27 は奇数ステップで 3077 まで上昇する;§0の9232は3×3077+1の偶数値)。しかし d=1 が持続不可能である以上、発散は不可能。

論文本体の Proposition 5.4 では、G-block の左端消滅(net ≤ 0)、次元分離、エピソード構造など、表の性質からの詳細な導出を与えている。上の3点はその結論の核心部分。

実測データ:n = 670,617,279 の軌道

以下は n = 670,617,279 の全370ステップ(83エピソード)の抜粋。赤行 = pair₀ が G(d=1, 成長)、青行 = pair₀ ≠ G(d≥2, 崩壊)。横線がエピソード境界。

steps 370
episodes 83
d=1 58%
peak 322,205,345,153
n
GPK (pair₀ = 左端)
670,617,279
GGGPPGKGKPGGGPP
1,005,925,919
GGPKPPGKPPGGGPG
1,508,888,879
GGPKPKPGGGPGPPPP
2,263,333,319
GPKGPPGPGPPGPPKP
3,394,999,979
GPPPPPPPGPPPPPKG
5,092,499,969
PKKKPKPPPPKPGGPKP
⋮ 39 steps ⋮
214,803,563,435
GPPPGKKPPPKPGKKKPKG
322,205,345,153
PKKPPPPPGGPGKPKKGPKP← ピーク
241,654,008,865
PKPKKGKPGKGPGKKPKPG
⋮ 74 steps ⋮
1,727,860,415
GGGPPGKKPGGGPPPP
2,591,790,623
GGPKPPPPGPGPPPPP
3,887,685,935
GGPKPKPPPPGPGPPG
5,831,528,903
GPKGPKPKPPPPGPPPP
8,747,293,355
GPPPPPPKPKPPPPKKP
13,120,940,033
PKKKKPPPPKPKPGKKG
⋮ 229 steps ⋮
287
GGPKP
431
GGPPP
647
GPKPP
971
GPKGG
1,457
PKGPPP
1,093
PPKPKP
205
PGKG
77
PGKP
29
PGP
11
GP
17
PKP
13
PG
5
PP
1
P
全370ステップを表示

赤帯(d=1 成長バースト)が必ず有限で途切れ、青帯(d≥2 崩壊)に移行するのが全83エピソードで確認できる。先頭Gが「生まれ→消費され→崩壊」を繰り返し、GPK列が短くなりながら n=1 に到達する。§7.5 の議論の実証。

§8 全体像:閉鎖性 → 自壊 → 脱出不可能

3n+1 = 2n + n + 1(シフト量1ビット < ペア幅2ビット)
  └→ GPK分類がペアを読むだけで確定する(閉鎖性)
      └→ 繰り上がり挙動が状態に依存しない
          ├→ G は無条件に繰り上がりを生む
          │   └→ その繰り上がりが G 自身を破壊する
          ├→ K は無条件に繰り上がりを止める
          │   └→ K が G に戻ることもない
          └→ 成長の源(G)= 成長の破壊者。逃げ道なし。

n=1 はペア (0,1)=P で、d=2、n'=1。不動点。他の全ての n は上記の制約により、この不動点に向かう以外の構造を持てない。

5n+1 では閉鎖性がないため、G が繰り上がりを出さない状態がある(逃げ道)。K が G に変わることもある(復活)。だから 5n+1 には 13→33→83→13 のような非自明サイクルが存在できる。

§9 これは「確率的に縮みやすい」という話ではない

よくある議論:「3n+1 は平均的に ÷2 の回数が多いから縮む」。しかしこれは確率論なので「運が悪ければ発散するかも」と反論できる。

この論文の議論はそれとは別の層にある:

確率的な主張この論文の主張
内容 「平均的に d が大きいから縮みやすい」 「G は無条件で繰り上がりを出す」
反論 「分散で偏れるかも」→ 有効 分散がない。全位置、全n、毎回成立

ネット ≤ 0:構造的上限 vs. 確率的傾向

G-block のネット変化(§7)で、この区別は特に明確になる:

確率的議論ネット ≤ 0(本論文)
主張 「平均的に G は減る」 「全ケースで最左 G-block の1ステップあたりネット ≤ 0」
定式化 E[X] < 0 max(X) ≤ 0
反例の可能性 あり — 分散が外れ値を許容 なし — 最大値が既に ≤ 0

ネット ≤ 0 は G の総量が単調に減ることを意味しない。新しい G-block は生まれうるし(P→G)、÷2d が非 G ペアを除去すれば G 密度は上昇する — 100% に戻ることすらある。ネット ≤ 0 が保証するのは、個々の最左 G-block の寿命が有限であること:各 d=1 連続(成長バースト)は必ず終わり、終わった後に d≥2 の崩壊が来る。

計算的検証と構造的記述

コラッツ予想に対する計算的検証(268 までの全数確認など)は、予想の信頼性を高め、反例の不在を確認する上で不可欠な貢献を果たしてきた。しかしその性質上、各軌道の検証は両端を 1 に囲まれた有限空間の中の帰納的確認であり、全ての n への拡張には原理的な壁がある。

Table 5.1 はその層に位置する。16 行で全ての GPK 配列の全てのペア位置を網羅し、配列の長さにも中身にも依存しない。計算的検証が「個々の n について事実を確認する」のに対し、表の構成は「全ての n に共通する構造を記述する」。両者は対立するものではなく、異なる層で同じ対象に光を当てている。

計算的検証:「この n は 1 に到達した」(個別の事実の蓄積)。
表の構成:「どんな n のどんなペア位置でも、G は必ず繰り上がりを出す」(構造の記述)。
前者が積み上げた膨大な証拠の上に、後者が「なぜそうなるのか」を説明する。

§10 表ができた時点で、結論は表の中にある

Table 5.1(スキャン16行)と Table 5.2(再ペアリング16行)が構成された時点で:

読み取れること方法
G → cout=1(例外なし)表から読める
K → G は不可能(例外なし)表から読める
P → G は cout=0(例外なし)表から読める
G-block が合流しない表から読める

論文の Lemma(補題)や Proposition(命題)は、表に既に書いてあることを言語化しているだけ

この論文の実質的な仕事は4つ:
  1. 3n+1 が16行の表で完全に記述できると認識したこと
  2. その表を構成したこと
  3. 表の性質を読み取ったこと(G常に繰り上がり、K→G不可能、etc.)
  4. 5n+1 と比較して「3n+1 だけが特殊」と確認したこと

結論:何もしてない!

構造は最初からそこにあった。

あとがき

この要約を書く過程で、「G-block の世代交代は本当に無限に続かないのか」と自問した瞬間、自分がコラッツ予想の泥沼にそのまま引き戻されていることに気づいた。構造的な説明が「まだ十分でない」という違和感の正体は、実は自分の認識の枠組みがすでに移動していたことの証だった。

構造的に閉じた議論を前にしても、人間は「個々の軌道」に戻ろうとする認知的な傾向がある——そのことに気づいた。「本当にそうなのか」を確かめようとするプロセスそのものが、この問題の複雑さを駆動しているのかもしれない。数学的直感が強い人にとって、これは抗いがたい罠だ。検証できる能力が検証への欲求を生み、軌道が見えるとそれを追いかけずにはいられなくなる。能力そのものが罠になる。この要約を書いている間も、私の思考は何度も軌道の深みに引き戻された。

検証スクリプト: dfst_final.py, dfst_properties.py
構造比較データ: dfst_comparison_record.md
元論文: "Pair Predicate Decomposition of Collatz-type Maps (xn+1)/2d" v5.1 (February 2026)