要旨 ラマヌジャンの公式$$ \frac{4}{\pi}=\sum_{n=0}^{\infty} \frac{(-1)^n (4n)! (1123+21460n)}{882^{2n+1}(4^n n!)^4} $$を用いて,円周率を計算するプログラムをHaskellで書きました. メモリ8GBのPCで動作させたところ,2000万桁程度まで実用的な速度で計算できました. 動機 この間ARCの過去問を解いている時 *1 をダブリングで解く問題に遭遇しまして,その解法が円周率計算の文脈でbinary splittingと呼ばれているものに似ていると思ったので,こちらも実装したくなったのが動機です. ARCのC問題が解けてうれしい https://t.co/um3sAbwoo9— camelry (@fetburner) February 21, 2018 *2 あとまぁ本日3月14日はπの日なの