用于处理大量数字的程序或库

Qor*_*Qor 4 python java math

我正在寻找一些方法来处理数以千万计的数字,并可以在这个级别进行数学运算.我可以使用Java和一些Python.因此,其中一个库可以方便,但是可以处理这些数字的程序也可以使用.有没有人有什么建议?

谢谢

Ted*_*opp 5

对于Java,请查看内置类BigIntegerBigDecimal.BigInteger数字的大小受可用内存的限制.BigDecimal可以表示任意大的基数为10的数字,小数点右边最多有2 32位数(实际上,也受可用内存的限制).

这些都限于相当基本的数学运算.(算术,整数幂等.没有根,日志等)如果你需要更多的东西,请参阅NISTJava Numerics页面上的库列表.(Apfloat包支持任意精度的超越函数和复杂的数学.)


Mar*_*ers 5

Python可以处理大数字而无需任何库.

>>> 100 ** 100
1000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000L
Run Code Online (Sandbox Code Playgroud)

虽然正如其他人所建议的那样,如果你想要额外的速度,你可能想要使用gmpy.


在Java中,您可以使用BigInteger.

  • inspectorG4dget:当然我确实尝试发布一个数以千万计的数字的例子,然后StackOverflow说帖子太长了,所以我做了一个较短的例子.但我认为你应该*能够明白这一点.请使用一点想象力. (6认同)
  • @RobW因为1e999被解析为float而不是int (4认同)
  • 但这个数字不是数百万的数字 (3认同)
  • 还有GMPY.Python的GMP.可能会更快. (2认同)
  • @MarkByers:似乎它依旧*打印*如此巨大的数字.[这个问题](http://stackoverflow.com/questions/1529569/print-extremely-large-long-in-scientific-notation-in-python)可能是相关的. (2认同)