计算常数的公式。按照主观理解难度从易到难排序。

关于 Binary Splitting 请左转喵喵喵 V

\(\sqrt{k}\)

迭代 \(x\leftarrow \frac12(x+\frac kx)\)。每次精度翻倍。

例:\(k=2,x_0=1\)。下方用黑色字表示第一个不正确的位数。

\[\begin{aligned} x_1&=1.\mathbf5\\ x_2&=1.41\mathbf6...\\ x_3&=1.41421\mathbf5...\\ x_4&=1.41421356237\mathbf4...\\ x_5&=1.41421356237309504880168\mathbf9...\\ x_6&=1.41421356237309504880168872420969807856967187537\mathbf7...\\ x_7&=1.414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641\mathbf6...\\ \end{aligned} \]

\(x_0\)\(x_7\),正确的有效数位分别为 \(1,2,3,6,12,25,49,98\)

只需在对应步数时使用对应精度的小数即可。设一个变量 \(prec=0\)\(x_0\)\(prec=1\),每次迭代 \(prec\leftarrow 2prec+\frac12\log2\),计算时取 \(\lceil prec\rceil\) 位计算。

\(e,\sin1,\cos1\)

Taylor 级数展开。

\[e=\sum_{k=0}^{+\infty}\frac1{k!} \]

\(k\) 项的误差项是 \(O(\frac1{k!})\sim(10^{-k\log k})\)

\(\sin(1),\cos(1)\) 同理。

\(\ln\)

我们都知道 \(\coth^{-1}(x)\) 的 Taylor 级数是

\[\coth^{-1}(x)=\sum_{k=0}^{+\infty}\frac1{(2k+1)x^{2k+1}} \]

并且他还等于

\[\coth^{-1}(x)=\frac12\ln\frac{x+1}{x-1} \]

于是如果我们可以取到一些 \(x\) 让他们的线性组合得到特殊 \(\ln\) 的值就可以通过计算这些 \(\coth^{-1}\) 来计算 \(\ln\) 了。

例:\(\ln2,\ln3,\ln5,\ln7\) 同时计算。\(n=251,449,4801,8749\) 均满足 \(n^2-1\) 的素因子只有 \(2,3,5,7\)

ln(2) = 144*arccoth(251) + 54*arccoth(449) - 38*arccoth(4801) + 62*arccoth(8749)
ln(3) = 228*arccoth(251) + 86*arccoth(449) - 60*arccoth(4801) + 98*arccoth(8749)
ln(5) = 334*arccoth(251) + 126*arccoth(449) - 88*arccoth(4801) + 144*arccoth(8749)
ln(7) = 404*arccoth(251) + 152*arccoth(449) - 106*arccoth(4801) + 174*arccoth(8749)

\(\pi\)

可以先看这里

前置阅读:喵喵喵 XI

对于所有的 \(h(d)=1\),都有正整数 \(A,B\) 和整数 \(C=-\sqrt[3]{j(\frac{1+\sqrt{d}}2)}\),满足:

\[\frac1\pi=\frac{12}{C\sqrt{C}}\sum_{k=0}^{+\infty}\binom{2k}k\binom{3k}k\binom{6k}{3k}\frac{-dAk+B}{(-C)^{3k}} \]

\(d=-163\) 的情况就是经典的 Chudnovsky 公式。具体数据见下表:

\(d\) \(A\) \(B\) \(C\)
\(-163\) \(3344418\) \(13591409\) \(640320\)
\(-67\) \(3906\) \(10177\) \(5280\)
\(-43\) \(378\) \(789\) \(960\)
\(-19\) \(18\) \(25\) \(96\)

剩下的 \(d\) 不适合进行计算,因为他们收敛太慢。

\(h(d)=2\) 的情况里面比较著名的有 Ramanujan 公式(\(d=-232\)):

\[\frac1\pi=\frac{2\sqrt2}{99}\sum_{k=0}^{+\infty}\frac{(4k)!}{k!^4}\frac{58\cdot 455k+1103}{396^{4k}} \]

\(\zeta(3)\)

编者至今(Dec 13, 2025)没有理解如何生成 \(\zeta(3)\) 的公式。读者可以自行搜索“Wilf-Zeilberger 对”来找到相关资料。

但我们知道 \(\frac{\zeta(2n)}{\pi^{2n}}\in\mathbb Q\) 对全体正整数 \(n\) 成立。