处理大数字(50000+位)的最佳编码语言

时间:2013-02-06 07:17:03

标签: math programming-languages calculator largenumber

你能推荐一些好的语言用大数字来做数学吗?

到目前为止,我已经使用了Actionscript 2和Objective-c以及使用Objective-c甚至使用NSDecimalNumbers我在计算中仅限于32位...我至少需要能够计算数字长达五万位。

5 个答案:

答案 0 :(得分:4)

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

>>> len(str(math.factorial(123456)))
574965

答案 1 :(得分:2)

也许Haskell会吸引你。

答案 2 :(得分:2)

另请尝试bc,这可能已安装在您的计算机上。

答案 3 :(得分:1)

尝试使用其BigInteger类的java,或者您可以查看在C中编写一个小型库。如果Math非常简单,您可以随时使用数组。

也许试试Matlab(不确定)

答案 4 :(得分:1)

现在大多数语言都支持任意长度的数字,本地语言或某些外部库(即gmp)。

唯一重要的区别 * 是语言中的集成级别。例如,在C ++,Python,Perl,SWI-Prolog,Haskell,C#等中,big-int可以像使用标准数学运算符的任何其他内置数值类型一样进行操作。另一方面,在不支持运算符重载的语言中,如C,Objective-C,Java等,必须明确使用库函数。

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

<强>更新

[*]很明显,正确性和速度也很重要。但是,由于大多数语言都使用GMP,因此在这方面不应存在市长差异。也许数学导向(和昂贵的!)语言/应用程序,如Mathematica或Maple提供他们自己的大型int实现可以在这里有一些优势。