我做了很多计算,在中间,我得到一个结果,称之为X.
我有一些与X相关的变量:
X_sum :到目前为止总数
X_sumOfSquares :顾名思义;每次产生X时(X * X)的总和,基本上是X ^ 2的总和。
N:计算X的操作被调用的次数
最后,我使用这些数字来计算X的真实均值所在的置信区间,基于我的样本的平均值。
无论我想要实现什么,我的问题是:
假设我计算X 1000次,所以N = 1000.哪种方法更快:
对于第二种方法,确实应该有一种方法来矢量化这种方法,有很多方法可以在C ++中实现这一点,例如我记得英特尔C ++有一些这种简单情况的自动矢量化,但我不知道如何在C#中做到这一点。
答案 0 :(得分:0)
第一种方法比天真迭代更快,因为您不需要在过程结束时迭代X向量。
如果您只需要统计计算的X值向量,那么内存使用也会更便宜。
您还可以考虑使用Linq方法计算Sum / Mean / Count(Linq查询并行运行) 总和:总和() N:计数() Std:Aggregate()