Best coding language for dealing with large number

2019-05-11 02:07发布

Can you recommend good languages to do math with large numbers in?

So far I've used Actionscript 2 and Objective-c and with Objective-c even using NSDecimalNumbers I was limited to 32 digits in my calculations... I would need at a minimum to be able to calculate with numbers fifty-thousand digits long.

5条回答
Deceive 欺骗
2楼-- · 2019-05-11 02:31

Python has arbitrary-length integers and uses them transparently, so you don't need any special code or classes for this.

>>> len(str(math.factorial(123456)))
574965
查看更多
做个烂人
3楼-- · 2019-05-11 02:33

Perhaps Haskell will appeal to you.

查看更多
ら.Afraid
4楼-- · 2019-05-11 02:40

Try java with its BigInteger Class or you can look at writing a small library in C. If the Math is fairly simple you can always use arrays.

Perhaps try Matlab (not sure)

查看更多
ら.Afraid
5楼-- · 2019-05-11 02:41

Try also bc, which is probably already installed in your machine.

查看更多
Melony?
6楼-- · 2019-05-11 02:48

Nowadays most languages have some kind of support for arbitrary length numbers, natively on the language or via some external library (i.e. gmp).

The only important difference* is the level of integration within the language. For instance, in C++, Python, Perl, SWI-Prolog, Haskell, C#, etc., big-ints can be manipulated as any other built-in numeric type using the standard math operators. On the other hand in languages not supporting operator overloading as C, Objective-C, Java, etc. you have to use the library functions explicitly.

Depending on the pervasiveness of big-int operations on your application it may pay off to switch to a more big-int friendly language or not.

update

[*] well, obviously, correctness and speed also matter. But, as most languages use GMP under the hood, there shouldn't be mayor differences in that regard. Maybe math-oriented (and expensive!) languages/applications as Mathematica or Maple providing their own big-int implementations can have some advantage here.

查看更多
登录 后发表回答