5

你能推荐好的语言来做大数的数学吗?

到目前为止,我已经使用了 Actionscript 2 和 Objective-c,即使使用了 Objective-c NSDecimalNumbers,我的计算也被限制为 32 位……我至少需要能够用五万位长的数字进行计算。

4

5 回答 5

8

Python 具有任意长度的整数并透明地使用它们,因此您不需要任何特殊的代码或类。

>>> len(str(math.factorial(123456)))
574965
于 2013-02-06T07:27:05.010 回答
3

也许Haskell会吸引你。

于 2013-02-06T08:31:58.993 回答
3

也试试bc,它可能已经安装在你的机器上。

于 2013-02-06T09:48:50.077 回答
2

如今,大多数语言都对任意长度的数字提供某种支持,在语言上或通过某些外部库(即 gmp)。

唯一重要的区别*是语言内的集成程度。例如,在 C++、Python、Perl、SWI-Prolog、Haskell、C# 等中,可以使用标准数学运算符将大整数作为任何其他内置数字类型进行操作。另一方面,在不支持运算符重载的语言中,如 C、Objective-C、Java 等,您必须显式使用库函数。

根据应用程序中 big-int 操作的普遍性,是否切换到对 big-int 更友好的语言可能会有所回报。

更新

[*] 好吧,显然,正确性和速度也很重要。但是,由于大多数语言都在后台使用 GMP,因此在这方面不应该存在差异。也许像 Mathematica 或 Maple 这样的面向数学(而且很昂贵!)的语言/应用程序提供自己的 big-int 实现在这里可以有一些优势。

于 2013-02-06T10:19:11.717 回答
1

尝试 java 及其BigIntegerClass,或者您可以考虑用 C 编写一个小型库。如果数学相当简单,您总是可以使用数组。

也许试试 Matlab(不确定)

于 2013-02-06T07:24:04.940 回答