1914年,印度天才数学家 斯里尼瓦瑟·拉马努金 (Srinivasa Ramanujan)发表了一篇名为《模方程与 π \piπ 的近似值》的论文。在这篇论文中,他给出了一个令当时数学界震惊的公式,可以惊人快速 地计算圆周率 π \piπ :
1 π = 2 2 9801 ∑ k = 0 ∞ ( 4 k ) ! ( 1103 + 26390 k ) ( k ! ) 4 396 4 k \frac{1}{\pi} = \frac{2\sqrt{2}}{9801} \sum_{k=0}^{\infty} \frac{(4k)!\,(1103 + 26390k)}{(k!)^4\,396^{4k}}π 1 = 9801 2 2 k = 0 ∑ ∞ ( k ! ) 4 39 6 4 k ( 4 k )! ( 1103 + 26390 k )
这个公式的每个新项可以增加约 8 位十进制精度 ——而此前最有效的公式(如马钦公式)每次迭代只能增加不到 1 位。这意味着只用几项就足以达到实用精度,几十项就能达到天文数字的精度。
里程碑意义 :拉马努金公式开创了"超快速收敛" π \piπ 计算的新纪元。20 世纪 80 年代在此基础上发展出的丘德诺夫斯基(Chudnovsky)算法,至今仍是计算 π \piπ 数十万亿位的核心工具。
拉马努金给出的通用形式属于一族 Ramanujan–Sato 级数 ,其基本结构为:
1 π = ∑ k = 0 ∞ ( 1 2 ) k ( 1 s ) k ( 1 − 1 s ) k ( 1 ) k 3 ( A + B k ) x k \frac{1}{\pi} = \sum_{k=0}^{\infty} \frac{(\frac{1}{2})_k (\frac{1}{s})_k (1 - \frac{1}{s})_k}{(1)_k^3} \, (A + Bk) \, x^kπ 1 = k = 0 ∑ ∞ ( 1 ) k 3 ( 2 1 ) k ( s 1 ) k ( 1 − s 1 ) k ( A + B k ) x k
其中 ( a ) k (a)_k( a ) k 是波赫哈默尔符号 (Pochhammer symbol),( a ) k = a ( a + 1 ) ( a + 2 ) ⋯ ( a + k − 1 ) (a)_k = a(a+1)(a+2)\cdots(a+k-1)( a ) k = a ( a + 1 ) ( a + 2 ) ⋯ ( a + k − 1 ) 。
对于最著名的那个具体形式:
1 π = 2 2 9801 ∑ k = 0 ∞ ( 4 k ) ! ( 1103 + 26390 k ) ( k ! ) 4 396 4 k \frac{1}{\pi} = \frac{2\sqrt{2}}{9801} \sum_{k=0}^{\infty} \frac{(4k)!\,(1103 + 26390k)}{(k!)^4\,396^{4k}}π 1 = 9801 2 2 k = 0 ∑ ∞ ( k ! ) 4 39 6 4 k ( 4 k )! ( 1103 + 26390 k )
公式中各个部分的意义:
参数
值
数学意义
A AA
1103 11031103
线性系数的常数项
B BB
26390 2639026390
线性系数的 k kk 项系数
C CC
396 396396
分母底数(模量倒数)
系数
2 2 9801 \frac{2\sqrt{2}}{9801}9801 2 2
归一化常数
k kk 从 0 开始
—
级数求和指标
为了更直观地理解公式的收敛速度,我们计算前几项的贡献:
1 π = 2 2 9801 ⋅ S \frac{1}{\pi} = \frac{2\sqrt{2}}{9801} \cdot Sπ 1 = 9801 2 2 ⋅ S
其中 S = ∑ k = 0 ∞ a k S = \sum_{k=0}^{\infty} a_kS = ∑ k = 0 ∞ a k ,a k = ( 4 k ) ! ( 1103 + 26390 k ) ( k ! ) 4 396 4 k a_k = \frac{(4k)!\,(1103 + 26390k)}{(k!)^4\,396^{4k}}a k = ( k ! ) 4 39 6 4 k ( 4 k )! ( 1103 + 26390 k )
前 5 项的详细数值:
k kk
( 4 k ) ! (4k)!( 4 k )!
( k ! ) 4 (k!)^4( k ! ) 4
396 4 k 396^{4k}39 6 4 k
1103 + 26390 k 1103 + 26390k1103 + 26390 k
a k a_ka k 值
a k a_ka k 数量级
0
1 11
1 11
1 11
1103 11031103
1103 11031103
10 3 10^31 0 3
1
24 2424
1 11
396 4 ≈ 2.46 × 10 10 396^4 \approx 2.46 \times 10^{10}39 6 4 ≈ 2.46 × 1 0 10
27493 2749327493
≈ 2.68 × 10 − 8 \approx 2.68 \times 10^{-8}≈ 2.68 × 1 0 − 8
10 − 8 10^{-8}1 0 − 8
2
40320 4032040320
16 1616
396 8 ≈ 6.04 × 10 20 396^8 \approx 6.04 \times 10^{20}39 6 8 ≈ 6.04 × 1 0 20
53883 5388353883
≈ 2.24 × 10 − 16 \approx 2.24 \times 10^{-16}≈ 2.24 × 1 0 − 16
10 − 16 10^{-16}1 0 − 16
3
4.79 × 10 7 4.79 \times 10^74.79 × 1 0 7
1296 12961296
396 12 ≈ 1.49 × 10 31 396^{12} \approx 1.49 \times 10^{31}39 6 12 ≈ 1.49 × 1 0 31
80273 8027380273
≈ 5.07 × 10 − 24 \approx 5.07 \times 10^{-24}≈ 5.07 × 1 0 − 24
10 − 24 10^{-24}1 0 − 24
4
2.09 × 10 11 2.09 \times 10^{11}2.09 × 1 0 11
331776 331776331776
396 16 ≈ 3.66 × 10 41 396^{16} \approx 3.66 \times 10^{41}39 6 16 ≈ 3.66 × 1 0 41
106663 106663106663
≈ 1.98 × 10 − 31 \approx 1.98 \times 10^{-31}≈ 1.98 × 1 0 − 31
10 − 31 10^{-31}1 0 − 31
可以看到,a k a_ka k 以大约 10 − 8 10^{-8}1 0 − 8 的因子逐项衰减,这正是每项贡献约 8 位十进制精度 的来源。
将前几项代入公式,计算得到的 π \piπ 值:
使用项数
计算得到的 π \piπ 值
正确位数
误差
仅 k = 0 k=0k = 0
3.141592 653 ⋯ 3.141592\color{red}{653\cdots}3.141592 653 ⋯
6 位
3.1 × 10 − 7 3.1 \times 10^{-7}3.1 × 1 0 − 7
k = 0 , 1 k=0,1k = 0 , 1
3.1415926535897 93 ⋯ 3.1415926535897\color{red}{93\cdots}3.1415926535897 93 ⋯
14 位
3.0 × 10 − 15 3.0 \times 10^{-15}3.0 × 1 0 − 15
k = 0 , 1 , 2 k=0,1,2k = 0 , 1 , 2
3.1415926535897932384626 42 ⋯ 3.1415926535897932384626\color{red}{42\cdots}3.1415926535897932384626 42 ⋯
22 位
2.2 × 10 − 23 2.2 \times 10^{-23}2.2 × 1 0 − 23
k = 0 , 1 , 2 , 3 k=0,1,2,3k = 0 , 1 , 2 , 3
3.141592653589793238462643383279 47 ⋯ 3.141592653589793238462643383279\color{red}{47\cdots}3.141592653589793238462643383279 47 ⋯
30 位
5.0 × 10 − 31 5.0 \times 10^{-31}5.0 × 1 0 − 31
直观对比 :要使用莱布尼茨公式达到 30 位精度,需要计算约 10 15 10^{15}1 0 15 项——这个数字大到即使每秒计算 1 万亿项,也需要约 30 年 。而拉马努金公式只需要 4 项 !
拉马努金公式并非凭空想象,而是源于他深厚的模形式 (modular forms)和椭圆积分 (elliptic integrals)理论。
椭圆积分 是一类形如下式的积分:
K ( k ) = ∫ 0 π / 2 d θ 1 − k 2 sin 2 θ K(k) = \int_0^{\pi/2} \frac{d\theta}{\sqrt{1 - k^2 \sin^2 \theta}}K ( k ) = ∫ 0 π /2 1 − k 2 sin 2 θ d θ
其中 k kk 是模量 (modulus)。互补模量 定义为 k ′ = 1 − k 2 k' = \sqrt{1 - k^2}k ′ = 1 − k 2 。
拉马努金发现了模方程——一个联系 k kk 和经过变换后的新模量之间的关系。具体来说,对于奇异模量 (singular moduli),K ( k ) K(k)K ( k ) 的值可以在某些特殊代数数处表示为 π \piπ 的简单倍数。
拉马努金公式的核心思想:选择特殊的 k kk 值,使得 K ( k ′ ) / K ( k ) = n K(k')/K(k) = \sqrt{n}K ( k ′ ) / K ( k ) = n ,其中 n nn 是正整数。在这种条件下,k kk 是代数数 (algebraic number),即某个多项式方程的解。
n nn
对应的 k kk 值(简化形式)
K ( k ) / π K(k)/\piK ( k ) / π 表达式
1
k = 1 / 2 k = 1/\sqrt{2}k = 1/ 2
Γ ( 1 / 4 ) 2 4 π 3 / 2 \frac{\Gamma(1/4)^2}{4\pi^{3/2}}4 π 3/2 Γ ( 1/4 ) 2
2
k = 2 − 1 k = \sqrt{2} - 1k = 2 − 1
—
3
k = 6 − 2 4 k = \frac{\sqrt{6} - \sqrt{2}}{4}k = 4 6 − 2
—
58
复杂代数数
涉及 1103 11031103 和 26390 2639026390
公式中的 9801 = 99 2 9801 = 99^29801 = 9 9 2 、396 = 4 × 99 396 = 4 \times 99396 = 4 × 99 、1103 11031103 和 26390 2639026390 这些看似随机的数字,都是从 n = 58 n=58n = 58 对应的奇异模量中精确推导出来的。
拉马努金没有接受过正规的数学训练,他声称这些公式是纳马卡尔女神(Namagiri)在梦中赐予他的。现代数学家们(如 Bruce Berndt 等人的研究工作)花了数十年时间,才逐一为拉马努金的公式提供了严格的证明。
用数学家 G. H. Hardy 的话说:"拉马努金的公式必须是真的,因为如果不是,没有人有想象力去发明它们。"
在拉马努金之前,π \piπ 的计算经历了三个主要阶段:
时期
代表人物
方法
最高精度(小数位)
古代(~250 BC)
阿基米德
多边形逼近
3
17 世纪
格雷果里、莱布尼茨
反正切级数(慢)
几十
18 世纪
马钦、欧拉
反正切组合公式
100
19 世纪
拉瑟福德、香克斯
改进的马钦类公式
707
到 1914 年,人们已经知道 π \piπ 大约 500 位精度。拉马努金的公式理论上只需几项就能超过这个精度 ——这在当时几乎不可想象。
拉马努金去世 35 年后,他的公式才在实际计算中展现实力:
年份
计算者
使用公式
计算的 π \piπ 位数
1949
ENIAC(电子计算机)
马钦公式
2037
1961
Shanks & Wrench
马钦公式
100,265
1973
Guilloud & Bouyer
马钦公式
1,001,250
1985
Gosper
拉马努金公式
17,526,200
1989
Chudnovsky 兄弟
Chudnovsky 算法
1,011,196,691
2022
谷歌云团队
Chudnovsky 算法
100,000,000,000,000
1985 年,Bill Gosper 使用 Symbolics 工作站实现了拉马努金公式,首次突破千万位大关。他在回忆中写道:"拉马努金的公式如此优雅,每当我看着它,都觉得它在召唤我计算更多位数。"
除最著名的那一个外,拉马努金还给出了十几个类似的 π \piπ 公式。以下是另外两个经典例子:
公式 2(收敛稍慢):
1 π = 1 3528 ∑ k = 0 ∞ ( 4 k ) ! ( k ! ) 4 ⋅ 1 99 2 k ( 1 + k 4 ) \frac{1}{\pi} = \frac{1}{3528} \sum_{k=0}^{\infty} \frac{(4k)!}{(k!)^4} \cdot \frac{1}{99^{2k}} \left(1 + \frac{k}{4}\right)π 1 = 3528 1 k = 0 ∑ ∞ ( k ! ) 4 ( 4 k )! ⋅ 9 9 2 k 1 ( 1 + 4 k )
公式 3(更高收敛率):
1 π = 1 882 ∑ k = 0 ∞ ( 4 k ) ! ( k ! ) 4 ⋅ 1 99 4 k ( 1103 + 26390 k ) \frac{1}{\pi} = \frac{1}{882} \sum_{k=0}^{\infty} \frac{(4k)!}{(k!)^4} \cdot \frac{1}{99^{4k}} \left(1103 + 26390k\right)π 1 = 882 1 k = 0 ∑ ∞ ( k ! ) 4 ( 4 k )! ⋅ 9 9 4 k 1 ( 1103 + 26390 k )
这些公式的共同特征是:都需要特殊的二次无理数 (如 2 \sqrt{2}2 )和整系数 。
拉马努金公式的快速收敛源于公式中 396 4 k 396^{4k}39 6 4 k 项。我们分析比值的渐进行为:
a k + 1 a k = ( 4 k + 4 ) ! ( 4 k ) ! ⋅ ( k ! ) 4 ( ( k + 1 ) ! ) 4 ⋅ 396 4 k 396 4 k + 4 ⋅ 1103 + 26390 ( k + 1 ) 1103 + 26390 k \frac{a_{k+1}}{a_k} = \frac{(4k+4)!}{(4k)!} \cdot \frac{(k!)^4}{((k+1)!)^4} \cdot \frac{396^{4k}}{396^{4k+4}} \cdot \frac{1103 + 26390(k+1)}{1103 + 26390k}a k a k + 1 = ( 4 k )! ( 4 k + 4 )! ⋅ (( k + 1 )! ) 4 ( k ! ) 4 ⋅ 39 6 4 k + 4 39 6 4 k ⋅ 1103 + 26390 k 1103 + 26390 ( k + 1 )
使用斯特林公式近似因子 ( n ! ≈ 2 π n ( n / e ) n ) (n! \approx \sqrt{2\pi n}(n/e)^n)( n ! ≈ 2 π n ( n / e ) n ) ,比值的主项为:
a k + 1 a k ∼ 1 396 4 ⋅ ( 4 k + 1 ) ( 4 k + 2 ) ( 4 k + 3 ) ( 4 k + 4 ) ( k + 1 ) 4 \frac{a_{k+1}}{a_k} \sim \frac{1}{396^4} \cdot \frac{(4k+1)(4k+2)(4k+3)(4k+4)}{(k+1)^4}a k a k + 1 ∼ 39 6 4 1 ⋅ ( k + 1 ) 4 ( 4 k + 1 ) ( 4 k + 2 ) ( 4 k + 3 ) ( 4 k + 4 )
对于大 k kk ,a k + 1 a k → 4 4 396 4 = 256 396 4 ≈ 256 2.46 × 10 10 ≈ 1.04 × 10 − 8 \frac{a_{k+1}}{a_k} \to \frac{4^4}{396^4} = \frac{256}{396^4} \approx \frac{256}{2.46 \times 10^{10}} \approx 1.04 \times 10^{-8}a k a k + 1 → 39 6 4 4 4 = 39 6 4 256 ≈ 2.46 × 1 0 10 256 ≈ 1.04 × 1 0 − 8
这意味着:每增加一项,精度大约增加 log 10 ( 1 / a k ) ≈ 8 \log_{10}(1/a_k) \approx 8log 10 ( 1/ a k ) ≈ 8 位十进制数字。
算法
每步精度增量
达到百万位的步数
时间复杂度
莱布尼茨公式
0.5 0.50.5 位
2 × 10 6 2 \times 10^{6}2 × 1 0 6
O ( n 2 ) O(n^2)O ( n 2 )
马钦公式
1 11 位
1 × 10 6 1 \times 10^{6}1 × 1 0 6
O ( n 2 ) O(n^2)O ( n 2 )
拉马努金公式
~8 位
~125,000
O ( n log 3 n ) O(n \log^3 n)O ( n log 3 n )
Chudnovsky 算法
~14 位
~71,400
O ( n log 3 n ) O(n \log^3 n)O ( n log 3 n )
高斯-勒让德算法
每步翻倍
log 2 n \log_2 nlog 2 n 步
O ( log n ⋅ M ( n ) ) O(\log n \cdot M(n))O ( log n ⋅ M ( n ))
注意:高斯-勒让德算法虽然以极其少的步数收敛(约 20~30 步即可达到百万位),但每一步都需要高精度算术运算,复杂度是 O ( log n ⋅ M ( n ) ) O(\log n \cdot M(n))O ( log n ⋅ M ( n )) 。而拉马努金公式是线性收敛 ,每一步固定增加约 8 位。
在实际计算中,要保证 N NN 位精度,需要的项数 K KK 满足:
a K < 10 − ( N + 1 ) a_K < 10^{-(N+1)}a K < 1 0 − ( N + 1 )
取对数近似:
log 10 ( a K ) ≈ − K 8 \log_{10}(a_K) \approx -\frac{K}{8}log 10 ( a K ) ≈ − 8 K
因此:
K > 8 ( N + 1 ) K > 8(N+1)K > 8 ( N + 1 )
目标精度
所需项数
计算时间(现代单核 CPU)
10 3 10^31 0 3 位
≈ 8 \approx 8≈ 8
< 1 < 1< 1 ms
10 6 10^61 0 6 位
≈ 8000 \approx 8000≈ 8000
≈ 1 \approx 1≈ 1 秒
10 9 10^91 0 9 位
≈ 8 × 10 6 \approx 8 \times 10^6≈ 8 × 1 0 6
≈ 30 \approx 30≈ 30 分钟
10 12 10^{12}1 0 12 位
≈ 8 × 10 9 \approx 8 \times 10^9≈ 8 × 1 0 9
≈ 30 \approx 30≈ 30 天(分布式)
1989 年,David Chudnovsky 和 Gregory Chudnovsky 兄弟在拉马努金公式的基础上,利用 n = 163 n=163n = 163 (Heegner 数 之一)的奇异模量,推导出了一个收敛更快 的变体:
1 π = 12 640320 3 ∑ k = 0 ∞ ( 6 k ) ! ( 13591409 + 545140134 k ) ( 3 k ) ! ( k ! ) 3 ( − 262537412640768000 ) k \frac{1}{\pi} = \frac{12}{\sqrt{640320^3}} \sum_{k=0}^{\infty} \frac{(6k)!\,(13591409 + 545140134k)}{(3k)!\,(k!)^3\,(-262537412640768000)^k}π 1 = 64032 0 3 12 k = 0 ∑ ∞ ( 3 k )! ( k ! ) 3 ( − 262537412640768000 ) k ( 6 k )! ( 13591409 + 545140134 k )
此公式的核心特性 :
属性
值
对比拉马努金公式
每步精度增量
~14.18 位
8 位
归一化常数
12 640320 3 \frac{12}{\sqrt{640320^3}}64032 0 3 12
2 2 9801 \frac{2\sqrt{2}}{9801}9801 2 2
分母底数
− 262537412640768000 -262537412640768000− 262537412640768000
396 396396
来源的 n nn 值
163 163163 (最大 Heegner 数)
58 5858
之所以用 n = 163 n=163n = 163 ,是因为它是最大的 Heegner 数(类数为 1 的虚二次域的判别式),对应的 j jj -不变量的值为整数:
j ( 1 + − 163 2 ) = − 640320 3 = − 262537412640768000 j\left(\frac{1 + \sqrt{-163}}{2}\right) = -640320^3 = -262537412640768000j ( 2 1 + − 163 ) = − 64032 0 3 = − 262537412640768000
特性
拉马努金公式(1914)
Chudnovsky 算法(1989)
每项位数
~8 位
~14 位
百万位所需项数
~125,000
~71,400
万亿位所需项数
~1.25 亿
~7,140 万
代码复杂度
低(整数运算为主)
中(大量整数运算)
当前使用
教学、参考
所有纪录保持者
以下是 Chudnovsky 算法的 Python 实现(使用 Python 的大整数运算):
from decimal import Decimal, getcontext
from math import factorial
def chudnovsky_pi(precision_digits):
"""使用 Chudnovsky 算法计算 π"""
getcontext().prec = precision_digits + 10 # 额外精度用于舍入
C = 426880 * Decimal(10005).sqrt()
K = Decimal(6)
M = Decimal(1)
X = Decimal(1)
L = Decimal(13591409)
S = Decimal(13591409)
for k in range(1, precision_digits // 14 + 2):
M = Decimal((K ** 3 - 16 * K) * M / k ** 3)
L += Decimal(545140134)
X *= Decimal(-262537412640768000)
S += Decimal(M * L / X)
K += Decimal(12)
return C / S
这个实现轻松达到百万位精度 (在普通笔记本上约需数秒)。
使用拉马努金公式仅取 k = 0 k=0k = 0 项:
a 0 = 1103 a_0 = 1103a 0 = 1103
1 π ≈ 2 2 9801 × 1103 \frac{1}{\pi} \approx \frac{2\sqrt{2}}{9801} \times 1103π 1 ≈ 9801 2 2 × 1103
π ≈ 9801 2 2 × 1103 \pi \approx \frac{9801}{2\sqrt{2} \times 1103}π ≈ 2 2 × 1103 9801
π ≈ 9801 2206 × 1.41421356 … \pi \approx \frac{9801}{2206 \times 1.41421356\ldots}π ≈ 2206 × 1.41421356 … 9801
π ≈ 9801 3120.0 … ≈ 3.1415926 … \pi \approx \frac{9801}{3120.0\ldots} \approx 3.1415926\ldotsπ ≈ 3120.0 … 9801 ≈ 3.1415926 …
验证 :通过简单的四则运算,仅用公式的第一项,就得到了 π ≈ 3.1415926 \pi \approx 3.1415926π ≈ 3.1415926 ——这已经正确到了小数点后 6 位!
取 k = 0 k=0k = 0 和 k = 1 k=1k = 1 两项完整计算:
S = a 0 + a 1 = 1103 + 24 × 27493 1 × 396 4 ≈ 1103 + 659832 2.459 × 10 10 ≈ 1103 + 0.000026839 … ≈ 1103.000026839 … \begin{aligned}
S &= a_0 + a_1 \\
&= 1103 + \frac{24 \times 27493}{1 \times 396^4} \\
&\approx 1103 + \frac{659832}{2.459 \times 10^{10}} \\
&\approx 1103 + 0.000026839\ldots \\
&\approx 1103.000026839\ldots
\end{aligned}S = a 0 + a 1 = 1103 + 1 × 39 6 4 24 × 27493 ≈ 1103 + 2.459 × 1 0 10 659832 ≈ 1103 + 0.000026839 … ≈ 1103.000026839 …
1 π ≈ 2 2 9801 × 1103.000026839 ≈ 0.3183098861838 … \frac{1}{\pi} \approx \frac{2\sqrt{2}}{9801} \times 1103.000026839 \approx 0.3183098861838\ldotsπ 1 ≈ 9801 2 2 × 1103.000026839 ≈ 0.3183098861838 …
π ≈ 3.141592653589793 … \pi \approx 3.141592653589793\ldotsπ ≈ 3.141592653589793 …
这和第 14 位小数完全一致。
应用领域
具体用途
所需精度
天文导航
深空探测器的轨道计算
15-20 位
GPS 定位
信号处理、球面几何
15 位
物理学常数
精细结构常数、量子电动力学
10-15 位
密码学
椭圆曲线密码、数论算法
数十至数百位
数学研究
检验 π \piπ 的正态性、连分数
百万亿位
计算机测试
浮点精度、并行计算能力
任意
值得注意的是,绝大多数实际应用只需要 π \piπ 的 15-20 位精度 。计算 π \piπ 到万亿位更多是为了:
验证超算性能 :Chudnovsky 算法是完美的并行计算 Benchmark
探索数字性质 :π \piπ 的数字是否服从均匀分布(正态数猜想 )
数学好奇 :人类对精确知识的永恒追求
一个值得介绍的开放性问题是:π \piπ 的数字在统计上完全随机吗?截至目前,对 π \piπ 数十万亿位的分析表明,0-9 每个数字的出现频率都非常接近 10%,但有轻微的统计偏差:
数字
出现次数(前 10 13 10^{13}1 0 13 位)
比例
0
≈ 1.0001 × 10 12 \approx 1.0001 \times 10^{12}≈ 1.0001 × 1 0 12
10.001%
1
≈ 0.9999 × 10 12 \approx 0.9999 \times 10^{12}≈ 0.9999 × 1 0 12
9.999%
2
≈ 0.9999 × 10 12 \approx 0.9999 \times 10^{12}≈ 0.9999 × 1 0 12
9.999%
3
≈ 1.0000 × 10 12 \approx 1.0000 \times 10^{12}≈ 1.0000 × 1 0 12
10.000%
4
≈ 1.0001 × 10 12 \approx 1.0001 \times 10^{12}≈ 1.0001 × 1 0 12
10.001%
5
≈ 0.9999 × 10 12 \approx 0.9999 \times 10^{12}≈ 0.9999 × 1 0 12
9.999%
6
≈ 1.0000 × 10 12 \approx 1.0000 \times 10^{12}≈ 1.0000 × 1 0 12
10.000%
7
≈ 1.0000 × 10 12 \approx 1.0000 \times 10^{12}≈ 1.0000 × 1 0 12
10.000%
8
≈ 0.9999 × 10 12 \approx 0.9999 \times 10^{12}≈ 0.9999 × 1 0 12
9.999%
9
≈ 1.0000 × 10 12 \approx 1.0000 \times 10^{12}≈ 1.0000 × 1 0 12
10.000%
数据偏好 π \piπ 是一个正态数 (normal number),但这个问题至今未被严格证明。
拉马努金选择 n = 58 n=58n = 58 而非其他数字,是因为这个数字对应的模方程阶数较低 ,同时产生的系数(1103 11031103 、26390 2639026390 、9801 98019801 )是整数。更正式的表述是,58 是主同余子群 Γ 0 ( 58 ) \Gamma_0(58)Γ 0 ( 58 ) 的属 (genus)为 0 的值之一。
模方程 y = 1 − 1 − x 2 1 + 1 − x 2 y = \frac{1 - \sqrt{1-x^2}}{1 + \sqrt{1-x^2}}y = 1 + 1 − x 2 1 − 1 − x 2 在 n = 58 n=58n = 58 时的变换产生了一个低次多项式,拉马努金通过解这个多项式的根得到公式中的系数。
椭圆积分 K ( k ) → 奇异模量 代数关系 → 模方程 变换公式 → 级数展开 Ramanujan 级数 → 数值计算 π \begin{aligned}
\text{椭圆积分 } K(k) &\xrightarrow{\text{奇异模量}} \text{代数关系} \\
&\xrightarrow{\text{模方程}} \text{变换公式} \\
&\xrightarrow{\text{级数展开}} \text{Ramanujan 级数} \\
&\xrightarrow{\text{数值计算}} \pi
\end{aligned}椭圆积分 K ( k ) 奇异模量 代数关系 模方程 变换公式 级数展开 Ramanujan 级数 数值计算 π
拉马努金的公式后来被推广为完整的 Ramanujan–Sato 级数族 。这些级数与单值化理论 (monstrous moonshine)和模函数 紧密相关。
级数类型
例子
收敛率(位/项)
1 级 Ramanujan–Sato
1 π = 2 2 9801 ∑ k = 0 ∞ ( 4 k ) ! ( 1103 + 26390 k ) ( k ! ) 4 396 4 k \frac{1}{\pi} = \frac{2\sqrt{2}}{9801}\sum_{k=0}^{\infty}\frac{(4k)!\,(1103+26390k)}{(k!)^4\,396^{4k}}π 1 = 9801 2 2 ∑ k = 0 ∞ ( k ! ) 4 39 6 4 k ( 4 k )! ( 1103 + 26390 k )
8
2 级 Ramanujan–Sato
Chudnovsky 算法
14
3 级 Ramanujan–Sato
Guillera 公式
约 6–10
4 级 Ramanujan–Sato
( 2 F 1 ) (_2F_1)( 2 F 1 ) 形式
约 4–8
以下总结历史上最重要的 π \piπ 计算公式及其收敛特性:
公式
发现者
年份
收敛率
历史地位
π 4 = 1 − 1 3 + 1 5 − 1 7 + ⋯ \frac{\pi}{4} = 1 - \frac{1}{3} + \frac{1}{5} - \frac{1}{7} + \cdots4 π = 1 − 3 1 + 5 1 − 7 1 + ⋯
Madhava / Leibniz
~1400 / 1674
极慢(0.5 位/项)
数学史上的里程碑
π 4 = 4 arctan 1 5 − arctan 1 239 \frac{\pi}{4} = 4\arctan\frac{1}{5} - \arctan\frac{1}{239}4 π = 4 arctan 5 1 − arctan 239 1
Machin
1706
慢(1 位/项)
200 年间最常用
1 π = 2 2 9801 ∑ k = 0 ∞ ( 4 k ) ! ( 1103 + 26390 k ) ( k ! ) 4 396 4 k \frac{1}{\pi} = \frac{2\sqrt{2}}{9801}\sum_{k=0}^{\infty}\frac{(4k)!\,(1103+26390k)}{(k!)^4\,396^{4k}}π 1 = 9801 2 2 ∑ k = 0 ∞ ( k ! ) 4 39 6 4 k ( 4 k )! ( 1103 + 26390 k )
Ramanujan
1914
快速(8 位/项)
超快收敛的开端
1 π = 12 640320 3 ∑ k = 0 ∞ ( 6 k ) ! ( 13591409 + 545140134 k ) ( 3 k ) ! ( k ! ) 3 ( − 262537412640768000 ) k \frac{1}{\pi} = \frac{12}{\sqrt{640320^3}}\sum_{k=0}^{\infty}\frac{(6k)!\,(13591409+545140134k)}{(3k)!\,(k!)^3\,(-262537412640768000)^k}π 1 = 64032 0 3 12 ∑ k = 0 ∞ ( 3 k )! ( k ! ) 3 ( − 262537412640768000 ) k ( 6 k )! ( 13591409 + 545140134 k )
Chudnovsky
1989
极快(14 位/项)
当今纪录保持者
拉马努金公式是 π \piπ 计算史上一个划时代的突破,其意义远不止于提供了一个更高效的公式:
思想革命 :证明了 π \piπ 与代数数 、模形式 之间存在深刻的内在联系
实用突破 :使电脑计算 π \piπ 到百万位成为现实,推动了超算 Benchmark 的发展
美学典范 :将 π \piπ 与整数 1103 11031103 、26390 2639026390 、9801 98019801 、396 396396 优雅地联结在一起
最后一个有趣的事实:拉马努金公式仅用 k = 0 k=0k = 0 一项就能得到 π \piπ 的前 6 位精确小数 。如果拉马努金当年有计算器,他完全可以亲手计算 π \piπ 到数百位精度——而他的伟大在于,他在没有任何计算工具 的情况下,仅凭数学直觉给出了这个公式。
延伸阅读 :