| пример из статьи |
| public static TResult StandardDeviation<T, TResult>(IEnumerable<T> values)
where T : INumber<T>
where TResult : IFloatingPointIeee754<TResult>
{
TResult standardDeviation = TResult.Zero;
if (values.Any())
{
TResult average = Average<T, TResult>(values);
TResult sum = Sum<TResult, TResult>(values.Select((value) => {
var deviation = TResult.CreateSaturating(value) - average;
return deviation * deviation;
}));
standardDeviation = TResult.Sqrt(sum / TResult.CreateSaturating(values.Count() - 1));
}
return standardDeviation;
}
|
| |
Они среднеквадратическое за два прохода считают что ли?
Похоже и среднее тоже по методу "сложить и поделить" ...