最有效的实现大量类

时间:2008-08-25 14:20:35

标签: language-agnostic bignum

当对非常大的数字进行计算时,整数数据类型(如double或int64)不足,可能需要一个单独的类来处理如此大的数字。

是否有人愿意提供有效的算法来解决这个问题?

5 个答案:

答案 0 :(得分:12)

您的问题有两种解决方案:

  • 简单方法: 使用“The GNU MP Bignum Library等外部库,忘记实施细节。

  • 艰难的方式: 设计自己的类/结构,包含多个高阶数据类型,如double或int64变量,并使用运算符重载(在C ++中)或通过名为add,subtract,multiply,shift等的方法为它们定义基本数学运算(在JAVA和其他OO中)语言)。

如果您需要任何进一步的帮助,请与我们联系。我过去曾经做过几次这样的事情。

答案 1 :(得分:6)

在C#4.0中使用BigInteger type

答案 2 :(得分:4)

使用语言的内置功能为我工作。

Java有BigIntegerBigDecimal,如果数字超出integer或诸如此类的范围,Python会自动切换到类似于Java的对象。

至于其他语言,我不知道。

我讨厌重新发明轮子。

答案 3 :(得分:4)

您问的是arbitrary-precision arithmetic books have been writtenIntX。如果您只想要一个简单且相当高效的C#BigNum库,您可能需要查看{{3}}。

答案 4 :(得分:3)

做你自己的BigNum库很复杂,所以我会说像jjnguy。使用您的语言提供的任何库。

在.net中,引用VisualJ dll,因为它们包含BigInteger和BigDecimal类。但是,您应该了解这些库的一些限制,例如缺少平方根方法。