Unbounded spigot algorithm ふとしたきっかけでπなどの値を「頭から順番に」求めるSpigotアルゴリズムを 見直していたら、「メモリの許す限り順番に値を計算し続ける」アルゴリズムを示した 論文を見つけた。 Jeremy Gibbons, Unbounded Spigot Algorithms for the Digits of Pi よくあるspigotアルゴリズムは計算したい桁数を最初に決めてデータ構造を初期化する必要がある。Gaucheのexamples/spigotに入ってるのもそれ。 一方、こちらのアルゴリズムはあらかじめ精度を決めておく必要がない。 論文のコードはHaskellで書かれている。 piとpiLは使っている級数の違い。後者の方が生成が速い。論文には他にもう一種類出ている。 実行例。結果は無限数列で返ってくるので欲しいところまで取れば良い。 *