我正在寻找一个可以处理真正巨大数字的Java库,或者关于如何自己实现这个的建议。我们谈论的远远超出了BigInteger。例如,2^39614081257132168796771974655+1。
显然,理论上我可以利用TreeSet,每个位一个条目,并使用老式的方法进行所有数学计算,但我正在寻找一些可以使用内置数学硬件对这些数字进行实际数学运算的东西。我不指望任何真正快速的东西,但我非常希望能够接近。
很可能设置位数可能相当小-我正在表示G2多项式。
有人知道外面有什么吗?
我怀疑包的一个特点必须是setBit(BigInteger i)。
添加
感谢Apfloat的建议。不幸的是,以下操作不可能。它抱怨第二个参数必须是long。
请注意,我也愿意听取如何自己完成此操作的建议。 < p > < strong > 添加 - 尝试重新打开。 < / p > 请参见 user2246674's post 提醒我们这些数字是多么惊人 - 我可以向您保证,我们不是在谈论一些普通的数学库,而是在谈论一些严肃的
显然,理论上我可以利用TreeSet,每个位一个条目,并使用老式的方法进行所有数学计算,但我正在寻找一些可以使用内置数学硬件对这些数字进行实际数学运算的东西。我不指望任何真正快速的东西,但我非常希望能够接近。
很可能设置位数可能相当小-我正在表示G2多项式。
有人知道外面有什么吗?
我怀疑包的一个特点必须是setBit(BigInteger i)。
添加
感谢Apfloat的建议。不幸的是,以下操作不可能。它抱怨第二个参数必须是long。
Apint two = new Apint(2);
Apint big = new Apint("39614081257132168796771974655");
ApintMath.pow(two, big);
请注意,我也愿意听取如何自己完成此操作的建议。 < p > < strong > 添加 - 尝试重新打开。 < / p > 请参见 user2246674's post 提醒我们这些数字是多么惊人 - 我可以向您保证,我们不是在谈论一些普通的数学库,而是在谈论一些严肃的
Math.pow(age-of-the-universe,atoms-in_the_galaxy)
类型的数字 - 我们 当然 不是在寻找只有 意见性答案 的解决方案。
TreeSet<BigInteger>
对我来说听起来不错,老实说。 - Louis Wasserman