>假设每个数字的大小接近max int,但略有不同(允许相同的数字(
- 例如 2,147,483,646
- 例如 2,945,283,647
- 例如 2,643,483,500
- 等。。。
我确信在这种情况下使用循环会失败,仅仅是因为程序会因超时错误而中止。
添加一万亿个数字是无法绕过一万亿次操作的,这需要一段时间。 由于我们谈论的是 4 TB,因此我们可能最多谈论加载到 SSD 中的数字,并且 CPU 时间将远小于从 SSD 读取一万亿个数字所需的时间。
并行执行此操作很容易,只要我们确保数据访问是并行的。 让大量CPU从一个SSD读取一万亿个数字不会加快速度。
总和不适合 64 位数字,但如果每个数字在 maxint的 2^24 以内,则可以将 maxint 和每个单独数字之间的差异相加,这将适合 64 位无符号整数。