← 數學與統計

圓周率數字產生器

在瀏覽器內高精度計算圓周率,並傳回指定小數位數的十進制前綴。已知目標長度時用位數模式;想看看固定時間內能完成多大規模的計算時,就用時間挑戰。

如果你想在已產生的前綴中繼續搜尋或跳轉,請打開 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。

時間挑戰模式是甚麼?

程式會按位數由小至大嘗試檢查點,並保留限制時間內完整完成而且位數最多的結果。超過截止時間才完成的結果不會採用。

按下停止會發生甚麼?

在位數模式中,現正進行的計算會取消,不會顯示未完成結果;在時間挑戰中,現正進行的計算會取消,並保留之前最後一個已完成的檢查點結果(如有)。

相關計算器