目录:
一个针对以 1 为根的去环反向科拉茨树(cycle-pruned reverse Collatz tree)的交互式浏览器可视化工具。它支持可调节的深度、原始数值与 (m,k) 两种标签、前向轨迹检查,以及将适配后的视口导出为 PNG。
更正声明: 本 README 的早期版本错误地声称以
5和32为根的反向子树是同构的,将下文的递推式描述为具有 21 步循环,并给出了针对奇数前驱的错误(m,k)公式。这些声明已在此处更正,并有自动化测试覆盖。
Collatz reverse tree.html 使用普通的、未加速的科拉茨映射,从 1 构建广度优先的反向树:
[ C(x)= \begin{cases} 3x+1, & x\text{ odd},\ x/2, & x\text{ even}. \end{cases} ]
对于当前值 n,可能的反向前驱有:
2n,它总是有效;(n-1)/3,当它是正奇数时。
可视化工具刻意省略了从 4 到 1 的反向边。如果没有这个例外,反向结构将包含大家熟悉的循环 1 → 4 → 2 → 1,从而不是有根树。因此,该页面显示的是去环的有根树,而不是完整的反向有向图。
- 生成到所选深度的去环反向树。
- 在
n和(m,k)标签之间切换,其中 [ m=\lfloor n/6\rfloor,\qquad k=n\bmod 6. ] - 点击节点以显示其返回到
1的实际前向科拉茨轨迹。 - 高亮该轨迹中的节点和边。
- 将图适配到当前画布视口后导出。
当且仅当存在非负整数 q 使得
[ \frac{n-1}{3}=2q+1 ]
时,奇数反向前驱才存在。整理得
[ n=6q+4, ]
因此,在完整的反向图中,
[ n\text{ has an odd predecessor}\iff n\equiv4\pmod 6. ]
每个正整数也都有偶数前驱 2n。因此,当且仅当 n ≡ 4 (mod 6) 时,节点才有两个反向前驱。
存在一个与显示相关的例外:在 n=4 处,奇数前驱是 1,为打断根循环,该边被省略。因此,在这棵去环树中,节点 4 只有一个显示出来的子节点。
若 n=3q,则
[ \frac{n-1}{3}=q-\frac13 ]
不是整数。因此,3 的倍数没有奇数反向前驱。
记
[ n=6m+k,\qquad 0\le k<6. ]
对于总是有效的偶数前驱,
[ 2n=12m+2k, ]
因此其坐标为
[ \left(2m+\left\lfloor\frac{k}{3}\right\rfloor,;2k\bmod6\right). ]
奇数前驱仅当 k=4 时存在。此时,
[ \frac{n-1}{3}=2m+1. ]
其 (m,k) 坐标必须由所得的整数计算:
[ \left( \left\lfloor\frac{2m+1}{6}\right\rfloor, (2m+1)\bmod6 \right). ]
等价地,若 m=3q+r(r∈{0,1,2}),则奇数前驱的坐标为
[ (q,2r+1). ]
例如,16=6·2+4 的奇数前驱是 5,其坐标为 (0,5)。
早期版本的 README 从有限深度的视觉相似性推断出无限的结构同构。那个推断是错误的。
应用相同的反向分支词 EEEOEEOEO,其中 E(x)=2x,O(x)=(x-1)/3(有效时):
5 → 10 → 20 → 40 → 13 → 26 → 52 → 17 → 34 → 11
32 → 64 → 128 → 256 → 85 → 170 → 340 → 113 → 226 → 75
对应的值 11 和 75 模 6 不同余:
11 ≡ 5 (mod 6)
75 ≡ 3 (mod 6)
再经过一次偶数反向步骤后,它们变为 22 和 150:
22 ≡ 4 (mod 6) → 有奇数前驱并分叉
150 ≡ 0 (mod 6) → 没有奇数前驱
因此,两棵有根反向树的层级计数首次在深度 11 处出现差异:
| 距子树根的深度 | T5 节点数 |
T32 节点数 |
|---|---|---|
| 9 | 9 | 9 |
| 10 | 12 | 12 |
| 11 | 15 | 14 |
| 12 | 19 | 17 |
这个反例推翻了之前的同构声明。它也说明了为什么有限的视觉一致性以及模 6 的观察不足以确立无限树同构。
相关研究考察了如下递推式:
[ F(n)=10\operatorname{LPF}(n)+(\operatorname{LPF}(n)\bmod10), ]
其中 LPF(n) 是 n 的最大质因数。
在这个精确定义下,从 233 出发的轨道是一个 26 状态循环,而不是 21 步循环:
233 → 2333 → 23333 → 233333 → 6611 → 6011 → 60111
→ 66799 → 9977 → 9077 → 3133 → 2411 → 24111 → 477
→ 533 → 411 → 1377 → 177 → 599 → 5999 → 8577 → 9533
→ 95333 → 136199 → 194577 → 8211 → 233
特别地,9533 是素数,因此
[ F(9533)=10·9533+3=95333, ]
而不是 233。
本仓库验证了上述循环,但不声明也不证明每个起始整数都会进入该循环。此前关于 10^9 以内实验和路径概率的缺乏依据的声明已被移除,因为相应的数据和可复现的分析并不存在于仓库中。
- 下载或克隆本仓库。
- 在可访问互联网的现代浏览器中打开
Collatz reverse tree.html。该页面目前从固定版本的 CDN 加载vis-network。 - 输入深度并点击 Generate / Refresh Tree。
- 如有需要,切换
(m,k)标签。 - 点击节点以检查并高亮其到
1的前向轨迹。 - 点击 Export PNG (Fitted View),保存当前适配到画布中的图。
深度输入限制为 30。使用当前的去环生成器,深度 8 有 17 个节点,深度 12 有 47 个节点,深度 27 有 1,748 个节点。
数学核心位于 collatz-math.js,由浏览器页面和 Node.js 测试共享。
运行:
node --test tests/collatz-math.test.js测试检查:
- 每条生成的反向边在前向科拉茨规则下都能映射回去;
- 去除根循环的特殊约定;
(m,k)往返以及更正后的奇数前驱示例;- 所选深度处的已知节点数;
- 针对
T5 ≅ T32的显式反例; - 所述最大质因数递推下的完整 26 状态循环。
├── Collatz reverse tree.html # 交互式可视化工具
├── collatz-math.js # 共享的数学核心
├── tests/
│ └── collatz-math.test.js # 自动化数学检查
└── README.md
- 科拉茨猜想仍未被证明;该可视化工具不是一个证明。
- 可视化工具显示的是有限的、去环后的树,不能仅凭外观为关于无限子树等价性的声明提供依据。
- JavaScript 的
Number运算仅对不超过2^53-1的整数才是精确的;UI 的深度上限使当前以 1 为根的树保持在该范围内,但任何未来的扩展都应保留显式的安全整数检查。 - PNG 导出捕获的是适配后的画布视口;它不是可任意缩放的完整图渲染器。
vis-network从互联网加载,因此该页面尚不能完全离线使用。
- Lagarias, J. C. (1985). The 3x + 1 problem and its generalizations. American Mathematical Monthly, 92(1), 3–23.
- Andrei, S., & Kudlek, M. Some results on the Collatz problem.
这些更正的目的在于区分已证明的事实、计算观察、被推翻的猜想和开放问题。为早期的猜想找到反例是数学过程的一部分,比保留一个被计算反驳的声明更有参考价值。
更多项目、文章和实验见我的个人网站:keng0nion.github.io。
