Unbounded spigot algorithm ふとしたきっかけでπなどの値を「頭から順番に」求めるSpigotアルゴリズムを 見直していたら、「メモリの許す限り順番に値を計算し続ける」アルゴリズムを示した 論文を見つけた。 Jeremy Gibbons, Unbounded Spigot Algorithms for the Digits of Pi よくあるspigotアルゴリズムは計算したい桁数を最初に決めてデータ構造を初期化する必要がある。Gaucheのexamples/spigotに入ってるのもそれ。 一方、こちらのアルゴリズムはあらかじめ精度を決めておく必要がない。 論文のコードはHaskellで書かれている。 piとpiLは使っている級数の違い。後者の方が生成が速い。論文には他にもう一種類出ている。 実行例。結果は無限数列で返ってくるので欲しいところまで取れば良い。 *
![Island Life - Unbounded spigot algorithm](https://cdn-ak-scissors.b.st-hatena.com/image/square/9782350b2b09af9927d4a1af1447f268b8238901/height=288;version=1;width=512/https%3A%2F%2Fblog.practical-scheme.net%2Fheader-og.png)