多倍長数値計算ライブラリ「Prjalp」を利用した円周率の計算

1.多倍長演算で円周率の計算をいろいろな方法でやってみました。

1.マチンの公式
  1万6000桁を約1分30秒で算出できました。
  Atanを算出する級数の収束までの回数は14820{atan(1/5):11454,atan(1/239):3366}
  遠い昔に習った逆三角関数を思い出しました。あ~~そうなんだ!と
2.高野喜久雄 の公式
  1万6000桁を約1分35秒で算出できました。
  Atanを算出する級数の収束までの回数は14250{atan(1/49):4737,atan(1/57):4559,atan(1/239):3366,atan(1/110443):1588}
  収束回数、所要時間はAtanを利用する場合は大差はないようです。
3.BBPの公式
  1万6000桁を約15秒で算出できました。
  πを算出する級数の収束までの回数は13294 整数計算が多いので回数の割には速い
4.Ramanujanの公式
  1万6000桁を約16秒で算出できました。
  πを算出する級数の収束までの回数は2719 整数計算で中間値が巨大になりオーバーフローが起きやすい
  収束する直前の中間値は +1.3215638504037586823643319946192098507722106e+55206
  他の方法では1項目あたり1024クワードで足りたがこの方法では4096クワードを確保した。
5.ガウス=ルジャンドル
  1万6000桁を約3秒で算出できました。(えっ!)
  πを算出する級数の収束までの回数は14 (うっそ~!!)
  計算精度を上げても収束回数はあんまり変わりません。 (ビックリ仰天しました!!!)
6.Chudnovsky の公式
  1万6000桁を約0.3秒で算出できました。(え~っ!)
  1/πを算出する級数の収束までの回数は僅か1130
  計算時間はこの中で最速!!!
7.バーゼル問題の解より算出
  16桁を計算するのに30分超かかりました。
  πを算出する級数の収束までの回数は7071万684 緩慢過ぎて使えない!!!
8.リーマンゼータ関数からπを算出
  32桁を計算するのに40分超かかりました。
  πを算出する級数の収束までの回数は8408万9642 緩慢過ぎて使えない!!!
 
上記は全てインターネット上の公開されている情報を元に計算式をプログラムに組込んで実行しました。
1.および2.は学生時代の微分積分の知識で理解できてますが、それ以外は理屈がわからないまま組込んでます
円周率を計算するときの計算過程へ

2.プログラムソース

お手元のPCで計算してみたいときはソースプログラムをダウンロードして利用してください。
ソースプログラムを修正していろいろ試して見てください。ちょっとした発見ができます。
Prjalp.pai.zip←クリック
ダウンロードしたプログラムの実行は
CPP(C++)に組込み可能な多倍長数値計算ライブラリ 「Prjalp」 が必要です。
トップへ

特記事項

(1)ソフトの実行結果について作者は十分に検証していますが
他者が実行した結果については保証しません。
利用者の責任において実行してください。
 
(2)ソフトが不要になった場合
ソースプログラム(Prjalp.pai.zip,usralp4.cpp)を削除してください。
履歴
2026.6.5(大安) 新規掲載

2026.6.5(大安) by BJ(Boke-Jisan)