← 数学与统计

圆周率算法竞速

在明确相同的条件下比较四种圆周率算法。固定时间会分别给每种算法相同预算;固定小数位会记录每种方法第一次达到相同精度目标的时间。

这是在当前设备和浏览器中运行的教学型基准。算法会依次执行,时间预算分别应用于每种算法。选择四种算法并设为 1,000 ms 时,整次运行通常需要约 4 秒或更久。浏览器负载与计时调度会影响结果,因此它不是普遍适用的性能排名。

如果你想先理解每种方法的近似过程,请先打开 圆周率近似探索器。这个页面更适合横向比较。需要实用十进制前缀时,再继续到 圆周率数字生成器

其他语言 日本語 | English | 简体中文 | 繁體中文 | 繁體中文(香港) | Español | Português (Brasil) | Français | Italiano
3 步开始
  1. 先保持四种算法全部选中,用默认目标跑一次。
  2. 不要只看赢家卡片,要同时看图表和比较表,理解差距是怎么拉开的。
  3. 想复用课堂设置时,可以读取其他示例,或直接复制 URL。

课堂示例:先用四种算法一起跑,再切换到较短的目标位数做第二轮比较。

竞速模式

用同一时间预算比较各算法最终能达到多少一致位数。

数值越小,图表点越密;数值越大,日志和 CSV 会更简洁。

算法

第一次建议四种算法都保留,差距会最清楚。

赢家
达到的最佳位数
最快达标
参与比较的算法
模式
目标时间
赢家估计值

竞速图表

横轴是经过时间,纵轴是一致位数。这个图主要用来看趋势,不适合当作不同设备之间的绝对性能测试。

比较表

四种圆周率算法的最终结果
算法 估计值 绝对误差 一致小数位 迭代次数 实际耗时 ms 计算耗时 ms 状态

四种算法与比较限制

计算在当前浏览器中进行。分享 URL 只包含设置,不会自动运行。网站统计详情请参阅隐私政策。 (隐私政策)

图表和 CSV 按所选间隔记录采样点,并保证包含每种算法的最终点。

教学提示

讲义与板书准备

常见问题

固定时间的 1,000 ms 是整场竞速的总时间吗?

不是。该预算会分别应用于每种已选算法,并且算法依次执行。选择四种算法时,1,000 ms 的设置通常意味着整次运行约需 4 秒或更久。

如何判定获胜、并列和无人达标?

固定时间先选择一致小数位最多的算法,再按绝对误差选出领先者;精度和比较误差都可视为相同时判为并列。固定小数位只在达到目标的算法中选最快者;若无人达到,则不设获胜者,只显示最接近目标的方法。

一致的小数位数是什么意思?

整数部分的 3 不计入。它表示小数点后从左开始、按页面说明的舍入规则与参考圆周率连续相同的位数,并受 JavaScript Number 精度上限约束。

绝对误差显示为 0,是否表示得到了数学上精确的圆周率?

不是。这只表示估计值被舍入为与 Math.PI 相同的双精度数值,并不代表它与真实的无理数圆周率之间没有误差。

迭代次数越少,就一定越高效吗?

不能直接这样比较。Gregory 的一项、Machin 的一次更新和 Chudnovsky 的一项,计算量与增加的信息量都不同。迭代次数主要表示各方法内部的进度。

为什么 Gregory 慢,而 Chudnovsky 快?

Gregory 每增加一项只改善一点;Chudnovsky 则被设计为每项增加很多正确位数。不过实际耗时仍会受到实现方式和设备性能影响。

换一台设备或浏览器,获胜者会相同吗?

不一定。CPU、浏览器引擎、标签页负载、电源模式、计时精度和调度都会改变时间结果。应把它用于观察收敛趋势,而不是宣称普遍最快。

停止、分享 URL 和导出 CSV 会保存什么?

停止会生成一个标明未完成的完整快照。分享 URL 只保存规范化设置,不会自动运行。CSV 会包含采样点以及每种算法唯一的最终行与状态。

相关计算器