Check out the following function, which calculates the Standard Deviation of a given list of values:
private static double calcStdev(IEnumerable<double> values)
{
double avg = values.Average();
return Math.Sqrt( (values.Sum(d => Math.Pow(d - avg, 2))) / (values.Count() - 1) );
}
Extra sweet...
Note that I could have replaced (d - avg) with (d - values.Average()) , hence resulting in a single line instead of 2, but the performance hit isn't worth it.
It may not look very readable looking at it as a programmer, but if you look at the mathematical formula of standard deviation, the above code is much closer to it than anything I've previously seen in C*.
No comments:
Post a Comment