2009-05-04 82 views
0

我一直很好奇:如何在非常長的小數上執行算術運算 - 例如,計算pi到小數點後第3000位(特別是在命令式語言中)?非常非常長的小數的算術運算

+0

你使用什麼語言?由於您可能可用於bignum操作的API,因此該語言特定於該語言。 – Noldorin 2009-05-04 22:27:08

回答

3

使用支持任意精度數字的語言或庫...?

在Python中,整數將自動提升爲任意大小的長整數。您可以使用第二個值來跟蹤多少個小數點以獲得某種任意精度浮點。

在Java中,您可以使用BigDecimal類,它表示「不可變,任意精度帶符號的十進制數」。

我確定其他語言中存在其他示例。

0

您必須使用數字級別的數據(例如,遞增計算或確定性計算每個數字)或定義具有足夠位數的新數據結構以提供足夠的精度。

3

對於不支持計算bignums的語言,通常有庫。例如,您可能會看到GMP。文檔將爲您提供一些典型算法方法的指針。

快速製作高原算法很困難,所以有一些相當複雜的算法在那裏...