- まずは小さいサンプルで、表示モード、コピー、TXT 保存の流れを確認します。
- 必要な長さが決まっているときは桁数指定、時間内にどこまで完成するかを見たいときは時間チャレンジを選びます。
- 生成後に特定の数字列を探したいときは円周率の桁ラボに進みます。
授業用の例: まず短い桁数で流れを確認し、そのあとに配布向けの桁数や短い時間チャレンジへ進みます。
数えるのは小数点以下の桁数です。出力は必ず 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 が使えない環境ではメインスレッドで実行します。時間チャレンジでは、制限時間内に計算が完全に終わったチェックポイントだけを採用します。
ワークシートと配布物の準備
- 代数ワークシート
生成した桁列をもとに、規則探しや観察メモの課題をそのままプリント化できます。
- グラフ用紙 PDF 生成
桁のまとまりや範囲を手で書き込みながら整理させたいときに使えます。
- クイックチャート
経過時間や完成桁数の小さな表を、資料向けの簡易グラフに変換できます。
FAQ
このプログラムはどの公式で円周率を求めていますか?
チュドノフスキー(Chudnovsky)級数を使っています。級数を binary splitting で再帰的に分割し、BigInt の整数演算と整数平方根で計算します。指定桁数より 18 桁多く計算してから切り捨てます。保存済みの円周率の桁表を読み出しているわけではありません。
このページは円周率そのものを厳密に表しますか?
いいえ。円周率は無限に続くため、有限の文字列で円周率そのものを厳密には表せません。このページは高精度計算を行い、指定した小数点以下の桁数までの先頭桁列を返します。
ここでいう先頭 n 桁とは何ですか?
入力欄では小数点以下の桁数を数えます。100 を入れると、結果は 3. のあとに 100 桁です。
なぜ 5,000 桁を超えると先頭+末尾表示になるのですか?
大きな文字列をそのまま描画すると不要なレイアウト負荷が増えるため、既定では先頭と末尾だけを見せます。コピーや TXT 保存では全文を保持しています。
時間チャレンジとは何ですか?
チェックポイントを小さい桁数から順に試し、指定時間内に計算が完全に終わったもののうち最大の桁数を残すモードです。制限時間を過ぎてから完了した結果は採用しません。
停止を押すとどうなりますか?
桁数指定モードでは進行中の計算を取り消し、未完成の結果は表示しません。時間チャレンジでは進行中の計算を取り消し、直前に完了したチェックポイントがあればその結果を残します。