- 已知目标长度时,直接用固定位数模式;想用固定时间做一次受限运行时,用时间挑战。
- 先试一个较小预设,确认显示模式、复制流程和 TXT 保存是否符合你的使用方式。
- 如果接下来要查找某个数字串、跳到某个位置或只复制局部范围,再进入 Pi 数字实验室。
课堂示例:先用较短的位数确认流程,再切换到讲义长度或短时间挑战。
这里统计的是小数点后的位数。输出始终以 3. 开头。
该模式会保留在所选时间内完整完成且位数最多的检查点结果。
自动模式会在 5,000 位以内显示全文,超过后自动切换为首尾预览。
小数点后的位数
输出
尚未生成输出。
工作方式
计算器使用 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 保存。
时间挑战模式是什么?
程序按位数从小到大依次尝试检查点,并保留限制时间内完整完成且位数最多的结果。超过截止时间才完成的结果不会被采用。
按下停止会发生什么?
在位数模式中,当前计算会被取消,不显示未完成结果;在时间挑战中,当前计算会被取消,并保留此前最后一个已完成的检查点结果(如果有)。