0

为什么 Erlang 不包含数学函数的任意精度?我最近不得不使用math:pow(2,4333),它会引发错误。为什么 Erlang 不使用 GMP 之类的库?是否有计划将其包含在标准库中?(Haskell 使用它,[strike] 甚至 Java 也有 bignums[strike])。

谢谢。

更新:为了增加更多视角,我知道可以使用 NIF 来完成。我正在解决来自hackerrank的问题,其中输入使用更大的数字。pow/2 可以很容易地用 Erlang 编写并且它可以工作,但是对于更大的计算,它会很慢。
Java 返回 double forpow因此它不适用于Math.pow(2, 1024)which give Infinity

4

1 回答 1

6

Erlang 有用于整数的 bignums,但使用 64 位 IEEE 标准浮点数。因此,虽然默认情况下您可以愉快地factorial(10000)使用整数进行计算,但该math库使用浮点数,因此math:pow(2, 4333)不起作用。

于 2013-11-10T21:22:44.200 回答