0

私はいつも興味がありました: どうすれば非常に長い 10 進数で算術演算を実行できますか? たとえば、円周率を小数点以下 3000 位まで計算する (特に命令型言語の場合)。

4

3 に答える 3

3

任意精度の数値をサポートする言語またはライブラリを使用します...?

Python では、int は任意のサイズの long に自動昇格します。2 番目の値を使用して、任意精度の浮動小数点の一種を取得するためにシフトする小数点以下の桁数を追跡できます。

Java では、「不変で任意精度の符号付き 10 進数」を表すBigDecimalクラスを使用できます。

他の言語には他の例が存在すると確信しています。

于 2009-05-04T22:23:09.187 に答える
3

bignum での計算をサポートしていない言語には、多くの場合ライブラリがあります。たとえば、 GMPを見ているかもしれません。ドキュメントは、典型的なアルゴリズムのアプローチのいくつかへのポインタを提供します。

bignum 演算を高速化するのは難しいため、かなり複雑なアルゴリズムがいくつかあります...

于 2009-05-04T22:25:03.550 に答える
0

桁レベルでデータを操作するか (たとえば、各桁を増分的または確定的に計算する)、適切な精度を提供するのに十分な数のビットを持つ新しいデータ構造を定義する必要があります。

于 2009-05-04T22:21:30.610 に答える