コラッツ予想の数値検証で「268 まで検証済み」といった世界記録を 目にしたことはありませんか?
これは特定の1つの大きな数の軌道を追った結果ではありません。 3 から 268 までの全ての奇数 — 数千兆個 — について、 それぞれの軌道が初期値を下回ることを1つ残らず確認したという意味です。 世界中の研究機関が計算資源を投じて達成しているのは、 この「区間内の全数検証」です。
本ツールの区間解析タブは、まさにこのスイープ機能を提供します。 開始値と終了値を入力し「検証開始」を押すだけで、 その範囲内の全奇数に対して並列に停止時間を計算し、 全数の収束/非収束を判定します。
検証の正当性は再現性によって担保されます。 世界記録も同様で、コードが公開され、誰でも同じ計算を再実行して結果を照合できることが証明の根拠です。 本ツールも同じ原則に基づいており、あなたの PC で同じ検証を実行し、同じ結果を得ることができます。
コラッツ型写像の計算ツールは多数存在しますが、 その大半は「1つの数を入力して軌道を眺める」タイプです。 指定区間の全奇数をスイープ検証する機能を備えたツールは限られています。
さらに、従来の検証ツールが出力するのは 「検証数・全数収束したか・最大停止時間」の3点のみです。 構造的な情報は一切記録されません。 本ツールは検証と同時に GPK 統計・キャリー連鎖長分布を蓄積し、 収束の「なぜ」に迫る構造情報を提供します。 単に「検証した」だけでなく「検証過程で何が起きていたか」を記録できる唯一のスイープツールです。
| 写像 | 検証範囲 | 検証した奇数の個数 | 所要時間 | 結果 |
|---|---|---|---|---|
| 3n+1 | 3 ~ 99,999,999,999 (≈237) | 500億個 | 約2分17秒 | 全数収束(最大停止時間 345, n=14,500,812,391) |
※ Intel Core i7-12650H(デスクトップPC1台)での実測値。 現在の世界記録は 271 規模(2025年1月, David Barina, GPU クラスタによる分散計算)。 スイープ範囲はマシン性能と時間が許す限り拡大でき、 誰でも自分の環境で検証を再現できます。
collatz-m4m6 は、コラッツ型写像 T(n) = (xn+1)/2d を m4/m6 ペア述語分解により解析するツールです。 乗算を使わず、加算器のキャリー伝播(Kogge-Stone 並列プリフィックススキャン)として 写像の1ステップを実行し、各ペア位置での GPK 分類(Generate / Propagate / Kill)を 演算の副産物として取得します。
対応する写像は x = 2s + 1 の形をとる全ての定数(x = 3, 5, 9, 17, 33, ...)です。 3n+1(標準コラッツ)だけでなく、5n+1 や 9n+1 等の一般化写像も解析できます。
GPK 統計収集の ON/OFF を切り替えます。
ON にすると、各ステップで加算器のキャリー伝播が G(Generate: キャリー生成)、 P(Propagate: キャリー伝播)、 K(Kill: キャリー消滅) のいずれであるかを各ペア位置で分類し、統計を蓄積します。 区間解析では GPK 比率、キャリー連鎖長分布、G-K バランス(発散/収束傾向)がグラフで表示されます。
ペアscan(パックドビット演算)では GPK はスキャン過程の副産物として得られるため、 追加コストは約1.3倍に留まります。 一方、u128 直接演算パスでは GPK 取得のために別途ビット分解が必要となり、 約20倍の速度低下が発生します。
大規模な区間検証で速度を優先する場合は OFF にすることで、 u128 パスの最大速度(約4.4億 nums/s)を引き出せます。
u128 ネイティブ高速演算パスの ON/OFF を切り替えます。
ON(デフォルト)にすると、区間解析において値が 128bit に収まる間は CPU のネイティブ乗算命令で直接 xn+1 を計算します(4命令、レジスタ完結)。 128bit を超えた場合は U256(256bit スタック演算)に昇格し、 さらに溢れた場合にペア述語分解(パックドscan)にフォールバックします。
3n+1 の区間検証ではほぼ全数が u128 内で完結するため、 ON で約84倍高速になります。
OFF にすると、最初からペア述語分解で全ステップを実行します。 ペアscan の動作検証や、GPK 統計を低コストで取得したい場合に使用します。
| 条件 | 速度(3n+1, 50M奇数) | 用途 |
|---|---|---|
| Phase1 ON, GPK OFF | ~442M nums/s | 大規模区間の高速検証 |
| Phase1 ON, GPK ON | ~22M nums/s | GPK 統計付き区間検証 |
| Phase1 OFF, GPK OFF | ~5.3M nums/s | ペアscan の速度測定 |
| Phase1 OFF, GPK ON | ~4.0M nums/s | ペアscan + GPK(副産物のため低オーバーヘッド) |
⚠ max_steps に関する重要な注意(5n+1 等の発散系列)
3n+1 以外の写像(5n+1, 9n+1, 17n+1 等)は収束が保証されません。 多くの初期値で数値が際限なく増大(発散)し、停止時間に到達しません。
発散する数に対して max_steps を大きく設定すると、 数値のビット長が指数的に増大し、メモリ消費と計算時間が急激に増加します。 5n+1 では 999,999,999 から出発した軌道が 3,000 桁超にまで到達する例があります。
推奨:
1つの奇数 n に対して、ペア述語分解による詳細解析を行います。
指定範囲の全奇数に対して停止時間検証(スイープ)を実行します。 世界記録と同じ方式の全数検証を、あなたの PC で実行できます。
過去の実行ログ(output/ フォルダ)を閲覧し、GPK グラフやキャリー連鎖長ヒストグラムを再表示します。
単発解析の軌道追跡では、結果が CSV ファイルとして自動保存されます。 各ステップについて以下のデータが記録されます:
| 列 | 内容 |
|---|---|
| step, n, d, exchanged | ステップ番号、値、÷2回数、m4/m6交換の有無 |
| m1 ~ m16 | 奇数 n' の 16述語(ペアビットの全16ブール関数)のビット列 |
| raw_m1 ~ raw_m16 | 偶数 xn+1(除算前)の16述語ビット列 |
| gpk, G, P, K | GPK 分類列と各カウント |
| max_carry_chain | 最大キャリー連鎖長 |
CSV の活用
16述語の全ビットパターンが各ステップで記録されるため、 単一の大きな数を追跡して GPK の比率がステップごとにどう変動するかを観察したり、 述語間の相関関係を分析したり、 まだ知られていない構造的法則を探索するのに最適です。 Excel や Python (pandas) で読み込んで自由に解析できます。
区間解析では、数値の大きさに応じて3段階の演算パスを自動的に切り替えます。
| フェーズ | ビット幅 | 演算方式 | 命令数/ステップ | メモリ |
|---|---|---|---|---|
| Phase 1 (u128) | ~128bit | CPU ネイティブ乗算 | ~4 | レジスタ完結 |
| Phase 1.5 (U256) | ~256bit | スタック割当 4×u64 乗算 | ~8 | スタック完結 |
| Phase 2 (パックドscan) | 任意長 | Kogge-Stone ペア述語分解 | ~25/128bit | ヒープ (Vec<u64>) |
Phase 1 / 1.5 は u128 Phase1 チェックボックスで ON/OFF を制御します。
OFF にすると最初から Phase 2(ペア述語分解)で全ステップを実行します。
ペア述語分解では、コラッツ写像の1ステップ xn+1 を加算器のキャリー伝播として実行します。 各ペア位置でのキャリーの振る舞いが GPK として分類されます:
| 分類 | 意味 | キャリーへの影響 |
|---|---|---|
| G (Generate) | このペアがキャリーを新たに生成する | 入力キャリーに関係なく出力キャリー = 1 |
| P (Propagate) | このペアが入力キャリーをそのまま伝播する | 入力キャリーがあれば出力 = 1、なければ = 0 |
| K (Kill) | このペアがキャリーを消滅させる | 入力キャリーに関係なく出力キャリー = 0 |
G > K なら数値は成長傾向(発散方向)、 G < K なら縮小傾向(収束方向)を示します。 3n+1 では G ≈ 38%, K ≈ 35% であり G > K ですが、 ÷2d の効果が G の寄与を上回るため全数が収束します。
キャリー連鎖長は、連続する P の並びの長さを示します。 P が連続するとキャリーが長距離にわたって伝播し、 数値の上位ビットに影響を及ぼします。 3n+1 の 233 規模検証では連鎖長 4-5 にピークがあり、 最大 26 でした。長距離伝播は指数的に稀であり、 キャリーが局所的に留まることを統計的に示しています。
全ての結果は実行ファイルと同じディレクトリの output/ フォルダに自動保存されます。
| 種別 | ファイル名例 | 内容 |
|---|---|---|
| 単発 CSV | gui_trace_3n1_27_s10000_gpk.csv | 全ステップの値・d・16述語・GPK(表計算で解析可能) |
| 単発 サマリ | gui_trace_3n1_27_s10000_gpk_2026051_174112.txt | GPK 集計・キャリー連鎖長ヒストグラム |
| 区間 サマリ | gui_verify_3n1_3-9999999999_s1000_gpk_2026051_174112.txt | 検証結果・GPK 統計・キャリー連鎖長分布 |
「解析」タブで過去のログファイルを選択すると、GPK グラフやキャリー連鎖長ヒストグラムを再表示できます。