← 数学与统计

圆周率数字生成器

在浏览器里高精度计算圆周率,并返回指定小数位数的十进制前缀。已知目标长度时用位数模式;想看固定时间内能完成多大规模的计算时,用时间挑战。

如果你想在已生成的前缀中继续搜索或跳转,请打开 Pi 数字实验室。如果你还想回头理解各种近似方法,请继续看 圆周率近似探索器

其他语言 日本語 | English | 简体中文 | 繁體中文 | 繁體中文(香港) | Español | Português (Brasil) | Français | Italiano
3 步开始
  1. 已知目标长度时,直接用固定位数模式;想用固定时间做一次受限运行时,用时间挑战。
  2. 先试一个较小预设,确认显示模式、复制流程和 TXT 保存是否符合你的使用方式。
  3. 如果接下来要查找某个数字串、跳到某个位置或只复制局部范围,再进入 Pi 数字实验室。

课堂示例:先用较短的位数确认流程,再切换到讲义长度或短时间挑战。

模式

这里统计的是小数点后的位数。输出始终以 3. 开头。

自动模式会在 5,000 位以内显示全文,超过后自动切换为首尾预览。

小数点后的位数

已生成位数
耗时 ms
Chudnovsky 项数
状态
显示

输出

尚未生成输出。

工作方式

计算器使用 Chudnovsky 级数 1/π = 12 Σ(k=0…∞) (-1)^k (6k)! (13591409 + 545140134k) / ((3k)! (k!)^3 640320^(3k+3/2))。它通过 binary splitting(把级数递归地分成两部分计算),配合 JavaScript BigInt 整数运算和整数平方根进行高精度计算。程序会比目标多算 18 位保护位,再直接截取而不四舍五入;它并不是从预存的圆周率位数表中读取答案。

通常同一套计算核心在 Web Worker 中运行,以保持页面响应;如果环境不支持 Worker,则改在主线程运行。时间挑战只接受在限制时间内完整完成的检查点。

课堂准备工具

把圆周率结果整理成课堂讲义、方格纸练习或比较图表。

常见问题

这个程序用什么公式计算圆周率?

它使用 Chudnovsky 级数,通过 binary splitting 把级数递归地分成两部分计算,再使用 BigInt 整数运算和整数平方根求值。程序会多算 18 位保护位后截取到目标长度,并不是从预存的位数表中读取答案。

这个页面能精确表示圆周率本身吗?

不能。圆周率的小数位数无限,因此有限字符串不能精确表示圆周率本身。本页面进行高精度计算,返回指定小数位数的十进制前缀。

这里的前 n 位是什么意思?

输入框统计的是小数点后的位数。输入 100 时,结果就是 3. 后面接 100 位数字。

为什么超过 5,000 位后会切成首尾预览?

直接渲染超长文本对大多数会话都没有必要,因此默认只显示开头和结尾,同时保留完整文本用于复制和 TXT 保存。

时间挑战模式是什么?

程序按位数从小到大依次尝试检查点,并保留限制时间内完整完成且位数最多的结果。超过截止时间才完成的结果不会被采用。

按下停止会发生什么?

在位数模式中,当前计算会被取消,不显示未完成结果;在时间挑战中,当前计算会被取消,并保留此前最后一个已完成的检查点结果(如果有)。

相关计算器