乌岚素数螺旋 (Ulam Spiral)
1963 年,数学家 斯坦尼斯瓦夫·乌岚 在一个冗长的学术报告上无聊至极, 随手在一张纸条上把整数写成螺旋,然后圈出素数——他惊讶地发现, 素数的分布并非随机散落,而是呈现出神秘的斜向条纹。
半个多世纪过去,这些条纹的成因依然没有完全解释清楚。 这里用 61×61 的螺旋实测一遍,看看乌岚当年看到了什么。
螺旋长什么样
# 是素数,空白是合数,外框 · 是螺旋的边界(1 在正中心):
·······························································
· # # # # # # # #·
· # # # # # # # # # # ·
· # # # # # # #·
· # # # # # # ·
· # # # # # # # # # # # ·
· # # # # # ·
·# # # # # # # # # ·
· # # # # # # # # # # ·
· # # # # # #·
· # # # # # # # # # # # ·
· # # # # # # # # # ·
· # # # # # # # ·
·# # # # # # # # # # # # #·
· # # # # # # ·
· # # # # # # #·
· # # # # # # # ·
·# # # # # # # # # ·
· # # # # # # ·
· # # # # # # # # # # ·
· # # # # # # # # # ·
· # # # # # # # ·
· # # # # # # # # # # ·
·# # # # # # # # # # # # # ·
· # # # # # # # ·
· # # # # # # # # # #·
· # # # # # # # # # # # # # ·
· # # # # ·
· # # # # # # # # # # # # # ·
· # # # # # # # # # # # # # # # ·
· # # # # # ·
·# # # # # ## # # # # # # # #·
· # # # # # # ·
· # # # ·
· # # # # # # # # # # # # # # # # ·
· # # # # # # # # # # # # ·
· # # # # ·
·# # # # # # # # # # # ·
· # # # # # # # # ·
· # # # # # ·
· # # # # # # # # # # ·
· # # # # # # # # # # # # # # ·
· # # # # ·
·# # # # # # # # # # # # #·
· # # # # # # # # # # ·
· # # # # # # # ·
· # # # # # # # # ·
· # # # # # # # ·
· # # # # # # # # ·
· # # # # # # ·
· # # # # # # # # # # ·
· # # # # # # #·
· # # # # # # # ·
· # # # # # # # # # # ·
· # # # # ·
· # # # # # # # # ·
· # # # # # # # ·
· # # # # # # # # ·
· # # # # # # # ·
·# # # # # # ·
· # # # # # # # ·
· # # # # # # # # ·
·······························································
实测数据(61×61,共 3721 个数)
| 对象 | 素数个数 | 密度 |
|---|---|---|
| 整个螺旋 | 519 | 13.9% |
| 主对角线 x=y(穿过 1 与 9、25、49…) | 21 / 61 | 34.4% |
| 副对角线 x=−y(穿过 1 与 3、13、31…) | 13 / 61 | 21.3% |
| 全螺旋最密对角线 x+y=18 | 22 / 43 | 51.2% |
| 第二密 x+y=−2 | 27 / 59 | 45.8% |
| 第三密 x+y=−6 | 25 / 55 | 45.5% |
最密的斜线素数密度是平均值的 3.6 倍——这正是乌岚当年瞥见的”条纹”。
为什么会有条纹?
一个已知的数学解释是:螺旋中每一条直线上出现的数, 恰好都是一个二次多项式的值(比如副对角线是 4n²−2n+1)。 而某些二次多项式(如欧拉的 n²+n+41)能持续输出很多素数, 于是它们对应的斜线就格外”亮”。
顺手的验证:欧拉多项式
欧拉 1772 年发现 n²+n+41 对 n=0..39 连续 40 个值全是素数。 本脚本实测:✅ 40 个值全部为素数,无一例外。
我原本还想当然地以为这 40 个点会恰好躺在螺旋的一条直线上——实测并没有: 它们从坐标 (−3,−1) 沿一条弧线爬到 (20,−18),落在同一条对角线上的最多只有 5 个。 条纹的真正来源是”整条线上的数都是某个二次多项式的值”,而不是单个多项式的一小段。 这个想当然被数据纠正了,挺好。
怎么玩
python3 ulam_spiral.py 61 # 任意奇数尺寸,比如 101 更大更密