大量类的最有效实现

时间:2020-03-05 18:42:50  来源:igfitidea点击:

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

是否有人愿意提供关于如何最好地做到这一点的有效算法?

解决方案

回答

使用语言的内置功能对我有用。

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

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

我讨厌重新发明轮子。

回答

有两种解决方案来解决问题:

  • 简单方法:使用外部库,例如'GNU MP Bignum库,而无需考虑实现细节。
  • 困难的方式:设计自己的包含多个高阶数据类型(如double或者int64变量)的类/结构,并使用运算符重载(在C ++中)或者通过名为add,subtract,multiple,shift等的方法(在JAVA中)为它们定义基本的数学运算和其他OO语言)。

让我知道我们是否需要任何进一步的帮助。我过去已经做过几次了。

回答

做自己的BigNum库很复杂,所以我想像jjnguy一样。使用语言提供的任何内容作为库。

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

回答

我们要问的是任意精度算术,这是一本写书的主题。如果我们只想为C#提供一个简单而高效的BigNum库,则可能要签出IntX。

回答

在C4.0中使用BigInteger类型