NSoft.NFramework.LinqEx.LinqTool.AsVariance C# (CSharp) Метод

AsVariance() публичный статический Метод

시퀀스의 분산값을 구한다
public static AsVariance ( this source ) : double
source this
Результат double
        public static double AsVariance(this IEnumerable<double> source) {
            source.ShouldNotBeNull("source");

            double avg = 0;
            double variance = 0;
            long n = 0;

            using(var iter = source.GetEnumerator())
                while(iter.MoveNext()) {
                    var x = iter.Current;
                    n++;
                    x -= avg;
                    avg += x / n;
                    variance += (n - 1) * x * x / n;
                }

            return (n > 1) ? variance / (n - 1) : 0;
        }