2009-05-04 22 views
0

私はずっと興味があります。たとえば、piを3000小数点以下(特に必須の言語)に計算するなど、非常に長いデシアルで算術演算を実行するにはどうすればよいですか?非常に長いデシマルの算術演算

+0

どのような言語を使用していますか?これは、bignum操作で使用できるAPIがあるため、言語固有のものです。 – Noldorin

+0

C#/ VB ......... – Daniel

答えて

3

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

Pythonでは、intsは任意のサイズのlongに自動的に昇格します。あなたは任意の精度の浮動小数点の一種を得るためにシフトするべき小数の数を追跡するために2番目の値を使用することができます。

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

他の言語でも他の例があります。

0

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

3

bignumsの計算をサポートしていない言語の場合、多くの場合ライブラリがあります。たとえば、GMPをご覧ください。ドキュメントは、典型的なアルゴリズム的アプローチのいくつかを紹介します。

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