3

PI の 10 進数で特定の一連の数字を見つけたいのですが、最初に PI を (おそらく) 無限大に計算する必要があります。問題は、変数に多くの桁を格納する方法や、新しく計算された桁を使用してシーケンスと比較できるようにする方法がわからないことです。

では、どうすれば PI を計算し、最後の小数のみを整数として保持できますか?

前もって感謝します。

4

3 に答える 3

4

この種の問題は、Haskell で見られるような遅延評価を使用して非常にエレガントに解決できます。または、Python でジェネレーターを使用して、一度に最大 1 つの数の Pi を生成し、検索されているターゲット値の対応する位置をチェックします。

どちらのアプローチの利点も、(潜在的に) 無限の数列を生成する必要がなく、探しているものが見つかるまで必要な数だけ生成することです。もちろん、特定の数列が実際に数 Pi に現れない場合、アルゴリズムは永遠に繰り返されますが、少なくともプログラムを実行しているコンピューターがメモリ不足になることはありません。

別の方法: BBP Formula、または Pi の特定の数字を抽出できる同様のアルゴリズムを使用することもできます。

于 2012-10-18T19:54:09.533 に答える
0
于 2020-10-09T21:14:57.187 に答える
0

Gauss–Legendre アルゴリズムなど、反復アルゴリズムを Pi の計算に使用できます。

これを実装するには、任意精度の演算を行うライブラリが必要です。そのようなライブラリの 1 つがGMPです。

どうやら、誰かがあなたのためにほとんどの作業を行っているようです: http://gmplib.org/pi-with-gmp.html

于 2012-10-18T19:51:17.660 に答える