我读到 numpy uses pairwise summation作为计算总和的默认算法(也由 numpy github 存储库中的 pull request 之一确认)
所以对于像下面这样的一般片段:
data = np.ones((1000,1000))
sum = np.sum(data)
print(sum)
成对求和的运行时间复杂度是多少?由于它遵循类似于 分而治之
的贪婪方法,因此它必须在 log
范围内,但我不确定确切的等式。
最佳答案
成对求和执行与朴素求和完全相同的加法次数。
但是,如果您要将 float 相加,那么简单的求和最终会在末尾附近将小数与大数相加。这会导致接近末尾的数字遭受更大的舍入误差。
因此,首选成对求和。
关于python - 成对求和的运行时间复杂度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55419430/