c# - 如何有效地计算大量数字的均值和标准差?

标签 c# windows visual-studio math mean

在 Win 7 的 Visual Studio 中使用 C#,我需要计算大量数字的均值和标准差。这些数字是从文件中读取的。 可能有十万甚至更多。如果我不想将它们保存在数组或列表等数据结构中,因为这可能不是内存有效的,如何有效地进行计算。

我还需要将数字打印到文件中。

答案在 How to calculate a standard deviation [array] 帮不了。

如有任何帮助,我们将不胜感激!

最佳

最佳答案

在一次处理一个数字的同时计算均值和标准差:

CountSumSumOfSquares 初始化为零。

当您收到每个数字时,将 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/

相关文章:

windows - 无法使用Windows Media编码器设置默认音频设备

python - 在 IIS7 64 位上安装 Mercurial 时出错 : "DLL Load Failed: %1 is not a valid Win32 application"

c - fflush(stdin) 在 vi​​sual studio 2015 中不起作用

c# - 来自模式的类

c# - Entity Framework - 查询精度

c# - 如何使用 Linq 对每 N 行进行分组

c# - 创建Word文档并编写格式化文本

c++ - 尝试通过 C++ 程序设置代理。不起作用

.net - 如何在 Visual Studio 2019 上解锁 NLog.config

c# - 在 C# 中读取一个简单的 XML 配置文件