Reputation: 17902
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.
Upvotes: 5
Views: 5701
Reputation: 10242
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.
Upvotes: 2
Reputation: 336468
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
Upvotes: 10
Reputation: 1469
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)
Upvotes: 1