円周率 1000 桁

PC-1 で円周率 1000 桁を計算してみた。 メモリ容量の関係で、プログラムを3(+1)分割し、 イニシャルローダーを用いてそれぞれ手動で読み込む形になった。 (もうすこし頑張れば自動読み込みができそうなのだが…) 準備として作成した、イニシャルオーダー R0 で読み込む 「円周率 400 桁」も掲載する。

使用法

WebGL 版 で(も)試せます。

円周率 1000 桁

円周率 400 桁

プログラムについて

マチンの公式を用いた。 "pi_1000_0.ptw" は変数領域をクリアし、 "pi_1000_1.ptw" は 16arctan(1/5) を計算し、 "pi_1000_2.ptw" は 4arctan(1/239) を引く。 "pi_1000_3.ptw" で印刷する。

"pi_1000_1.ptw" では、総和と (1/5)^{2n+1} を格納するために 97 長語の領域を二つ利用する。 まず (1/5)^{2n+1} を計算し、 それを 2n+1 で割りながら総和に加減している。 "pi_1000_2.ptw" では "pi_1000_1.ptw" との差分を 上書きし、実行している。

印刷ルーチンには、e1000桁のものに必要な変更を施して用いている。 (ただし、元のものはよどみなく印刷が行われる凝ったプログラムだが、 400 桁の方はいくぶん退化していてそうなっていない。)