有没有办法合理地操作非常大的整数(数百万或数十亿个数字)?我需要做的操作是简单的+, - ,*和/或
我正在寻找的算法是在合理的时间内完成上述操作(比如在现代PC上最多1小时)。我不介意对数字使用任何类型的表示,但如果我需要为每个操作使用不同的表示,那么不同表示之间的转换也应该在合理的时间内完成。
当我用这个大小的数字时,我所看到的所有大数字库都完全崩溃了。这是否表示不存在此类算法,或者只是这些库表示/实现未针对此类大小进行优化?
编辑 1小时的限制可能是不可能的。我给出了这个数字,因为一个十亿次迭代的简单循环应该少于这个,我希望有一个使用O(n)时间的算法。 24小时的限制似乎更合理吗?
答案 0 :(得分:2)
您可能希望查看DecInt Python class。
这针对很长的十进制整数进行了优化。 (这些数字存储在一个表示中,可以在O(n)时间内轻松转换为十进制数字。)
它可以执行您希望的操作,包括: