Ind*_*ent 26 .net c# algorithm
double[] someDoubles = { 34.6, 45.1, 55.5, 78.5, 84.66, **1400.32**, 99.04, 103.99 };
Run Code Online (Sandbox Code Playgroud)
上面的代码是累积算法的意外行为的简短样本(请参阅粗体值).实际上,这是一个类,它还包含每个值的日期.
C#计算偏差?排序打破累积链的行的算法?
建议有帮助,
[插入]
为了澄清,这是关于
性能在这个主题上非常重要的三件事.
第一种: 如果值遵循累积模式,则快速扫描.
第二:检查所有值是否合理偏差.
第三: 指出并进行错误处理.
这个问题是关于第一个和第二个问题.
San*_*ath 65
使用lambdas
double average = someDoubles.Average();
double sumOfSquaresOfDifferences = someDoubles.Select(val => (val - average) * (val - average)).Sum();
double sd = Math.Sqrt(sumOfSquaresOfDifferences / someDoubles.Length);
Run Code Online (Sandbox Code Playgroud)
sd变量将具有标准偏差.
如果你有sd,那么List<double>在最后一行使用代码代替someDoubles.Count.
jb.*_*jb. 14
要计算标准偏差,您可以使用此代码.直接取自Victor Chen在C#中计算双变量的标准偏差.
private double getStandardDeviation(List<double> doubleList)
{
double average = doubleList.Average();
double sumOfDerivation = 0;
foreach (double value in doubleList)
{
sumOfDerivation += (value) * (value);
}
double sumOfDerivationAverage = sumOfDerivation / (doubleList.Count - 1);
return Math.Sqrt(sumOfDerivationAverage - (average*average));
}
Run Code Online (Sandbox Code Playgroud)
此链接指向Victor的网站不再有效,但仍包含在内以帮助维护归属.