-1

我需要进行Math.Sqrt计算,但它必须支持非常大的数字,所以我正在尝试使用BigIntegerMath.Sqrt不支持它们。

还有其他选择吗?我怎样才能做这个计算,结果是双倍的?

样本 :

sqrt 5 = 2,2360679774997896964091736687313 
sqrt 4789798765456456456 = xxxxx,xxxxxxxxxxx norm.
4

1 回答 1

-3

最简单的方法可能是从双精度初始猜测开始运行牛顿法求平方根。

为了加快速度,请注意牛顿方法在每次迭代时都会将其精度提高一倍。您也可以通过跟踪 int32“指数”和“尾数”来将每次迭代的精度加倍BigInteger,每一步将“尾数”的精度提高两倍,直到达到足够的精度。

于 2014-12-28T17:13:49.437 回答