Re[2]: offtop: сортировщики гномиков
От: Sinclair Россия https://github.com/evilguest/
Дата: 20.07.22 04:19
Оценка: +1
Здравствуйте, syrompe, Вы писали:
S>Они среднеквадратическое за два прохода считают что ли?
По исходнику — да. Ну это ж пример на пальцах.
S>Похоже и среднее тоже по методу "сложить и поделить" ...
В статье прямо над кодом StandardDeviation приведён код Average:
public static TResult Average<T, TResult>(IEnumerable<T> values)
    where T : INumber<T>
    where TResult : INumber<TResult>
{
    TResult sum = Sum<T, TResult>(values);
    return TResult.CreateChecked(sum) / TResult.CreateChecked(values.Count());
}

Ну, и код Sum тоже приведён:
public static TResult Sum<T, TResult>(IEnumerable<T> values)
    where T : INumber<T>
    where TResult : INumber<TResult>
{
    TResult result = TResult.Zero;

    foreach (var value in values)
    {
        result += TResult.CreateChecked(value);
    }

    return result;
}

Так что да — сложить и поделить. А вы бы что предложили? Меня в приведённых примерах беспокоит разве что потеря точности.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.