我目前在Java11上,我看到 BigInteger
有一个底层表示,其中数字本身存储在 int[]
.
当然要索引 int[]
必须将数组的大小限制为 Integer.MAX_VALUE
,这是在当前 BigInteger
实现时,如果超过此值,将得到 ArithmeticException("BigInteger would overflow supported range")
例外。
我明白,我们在这里谈论的是非常庞大的数字 (2^32)^(2^32)
(给定的整数存储在4字节中)给出或获取奇数符号位。但在这个云计算和微服务的世界里,我确信有一些应用程序可以计算出比这个值更大的精确整数。
是否有人知道reallybiginteger没有这个限制的任何实现(在java中)。
我的第一个想法是使用一个类似于红黑树(例如红黑树)的底层表示,其中叶节点持有该部分值。
这种类型的数据结构应该允许仅由所涉及的拥有方的计算资源限定的数字的操作。
我很想听听。
暂无答案!
目前还没有任何答案,快来回答吧!