假设每个数字的大小都接近max int,但略有不同(允许相同的数字)
我确信在这种情况下使用循环会失败,仅仅是因为程序会因超时错误而中止。
答案 0 :(得分:1)
要增加一万亿个数字,就不可能进行一万亿次操作,这需要一段时间。由于我们谈论的是4 TB,因此我们最多只能谈论的是加载到SSD中的数字,而CPU时间将比从SSD中读取一万亿个数字所需的时间小得多。
只要确保数据访问是并行的,并行执行此操作就很容易。有大量的CPU从一个SSD读取数万亿个数字并不能加快速度。
总和不适合64位数字,但是如果每个数字都在maxint的2 ^ 24范围内,则可以将maxint与每个数字之间的差相加,这样就可以一个64位无符号整数。