跳到主要内容

考拉兹猜想入门:3n+1 规则、冰雹序列与至今未解之谜

考拉兹猜想又叫 3n+1 问题或冰雹猜想,规则只有偶数除以二、奇数乘三加一两条,却至今没人能证明它对所有数都成立。本文讲清规则、序列、步数与峰值。

发布于 作者 李雷
#考拉兹猜想 #3n+1 #冰雹猜想 #数学 #编程练习

考拉兹猜想入门:3n+1 规则、冰雹序列与至今未解之谜

数学里有一类问题,规则简单到小学生都能听懂,答案却让顶尖数学家束手无策。考拉兹猜想就是其中最出名的一个。它由 Lothar Collatz 在 1937 年提出,又被叫作 3n+1 问题、冰雹猜想、角谷猜想、乌拉姆猜想、西拉古斯问题。名字一大堆,说的却是同一条规则、同一个悬而未决的疑问。

规则只有两条

拿任意一个正整数当起点,然后反复执行下面两步:

  • 如果这个数是偶数,把它除以 2。
  • 如果这个数是奇数,把它乘 3 再加 1。

得到新的数之后,再用同样的判断继续走下去。猜想断言:不管你从哪个数起步,这样一直走,最终都会掉到 1。到了 1 之后会进入 1、4、2、1 的小循环,所以一般就把第一次到达 1 当作终点。

规则就这么干净。可正是这种干净,藏着没人能拆开的难。

冰雹序列:忽上忽下的轨迹

一个起点走过的整条路径,有个很形象的名字,叫冰雹序列。偶数把数砍半往下压,奇数把数乘三往上抬,两种力量你来我往,数值就像被暴风云卷上卷下的冰雹,起起落落好几轮,最后才掉到地面,这里的地面就是 1。

拿 6 来手算一遍,过程足够说明问题。6 是偶数,除以 2 得 3。3 是奇数,3 乘 3 加 1 得 10。10 除以 2 得 5,5 是奇数,5 乘 3 加 1 得 16。接着 16、8、4、2、1 一路对半减到底。完整路径是:

6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1

从 6 到 1 一共走了 8 步,沿途出现过的最大值,也就是峰值,是 16。你在考拉兹猜想计算器里填个 6,看到的正是这条序列,步数和峰值也都摆在旁边。

步数和峰值:两个最有意思的数

一条冰雹序列里,有两个量最值得盯着看。

步数是第一次到达 1 用了几步,每一次除 2 或每一次 3n+1 都算一步。峰值是落到 1 之前路径冲到过的最高点。这两个数和起点的大小几乎没有关系,这正是考拉兹猜想最反直觉的地方。

很多人以为 100 以内的小数总该很快稳定,可现实会泼一盆冷水。26 用 10 步就落地了,挨着它的 27 却要走 111 步,中途一路冲到 9232 才肯回头。一个不到三十的小数,轨道却疯狂成这样。100 以内的几个经典记录保持者是 27、31、47、54、73、97,你可以挨个跑一遍,把步数和峰值列成一张速查表,亲眼看看小起点和长轨道之间根本没有规律可循。

为什么至今没被证明

这条规则把乘法和除法搅在一起。一次奇数步大致把数翻三倍,一次偶数步把它砍半,而奇偶步出现的顺序,取决于随数值增大而越来越难预测的比特位。整体走向因此变得极难捉摸。

数学家 Paul Erdos 说过,数学还没准备好对付这类问题。计算机已经把考拉兹猜想验证到 2 的 68 次方以上,每一个测过的数都老老实实回到了 1。但验证不等于证明,谁也无法排除某个还没被试到的天文数字会卡在某个循环里、永远到不了 1。这就是它至今挂在那里的原因。

拿它当编程练习

我自己第一次写考拉兹是大学的算法课作业,印象很深。短短几行代码就能跑出一条冰雹序列,可一旦把起点放大,就会撞上一个真实的坑:峰值动不动超过普通整数能精确表示的范围。JavaScript 里数值超过 2 的 53 次方就开始丢精度,9232 这种还好,真遇上轨道更野的起点,普通数字算出来的峰值就不可信了。要算得准,得用 BigInt 这类大整数类型。这个小细节,比规则本身更能教会人尊重精度。

如果你想把序列数据拿去画图或做动画,也可以先用数列生成器生成一批起点,再逐个跑考拉兹,把每条逗号分隔的序列复制进绘图代码或表格。干净精确的整数,没有科学计数法,9232 原样就是 9232。

小结

考拉兹猜想是规则与难度反差最大的数学问题之一:偶数除以 2,奇数乘 3 加 1,反复直到 1。它生出忽上忽下的冰雹序列,步数和峰值与起点大小毫无关联,而它本身至今未被证明。无论你是想给学生演示未解之谜,还是想找个有趣的编程练习,亲手跑几个起点,都比读十遍定义更能体会它的魅力。


Made by Toolora · Updated 2026-06-13