在 Win 7 的 Visual Studio 中使用 C#,我需要计算大量数字的均值和标准差。这些数字是从文件中读取的。 可能有十万甚至更多。如果我不想将它们保存在数组或列表等数据结构中,因为这可能不是内存有效的,如何有效地进行计算。
我还需要将数字打印到文件中。
答案在 How to calculate a standard deviation [array] 帮不了。
如有任何帮助,我们将不胜感激!
最佳
最佳答案
在一次处理一个数字的同时计算均值和标准差:
将 Count
、Sum
和 SumOfSquares
初始化为零。
当您收到每个数字时,将 1 添加到 Count
,将数字添加到 Sum
,并将数字的平方添加到 SumOfSquares
.
处理完每个数字后,将Mean
设置为Sum/Count
,将StandardDeviation
设置为Math.Sqrt(SumOfSquares/计数 - 平均值 * 平均值)
。
后一个公式的推导显示在 the Wikipedia page for standard deviation 中。 .
关于c# - 如何有效地计算大量数字的均值和标准差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21439616/