//конструктор public PracticalDistributionFunction(Sampling sampling) { Sampling Ranged = sampling.RangedSampling(); //упорядоченная выборка double P = (double)1 / Ranged.GetVolume();//частота одной точки Values.Add(new Point(Ranged.GetValue(0), P)); //добавляем первую точку к функции Ranged.DeletValue(Ranged.GetValue(0)); //удаляем её из выборки while (Ranged.GetVolume() != 0) //пока в выборке есть точки { double TemproraryProbability = Values[Values.Count - 1].GetP + P; if (Values[Values.Count - 1].GetX == Ranged.GetValue(0)) //если точка имеет то же значение что и последняя в функции { Values[Values.Count - 1] = new Point(Ranged.GetValue(0), TemproraryProbability); //увеличиваем значение функции в данной точке } else { Values.Add(new Point(Ranged.GetValue(0), TemproraryProbability)); //иначе добавляем к функции новую точку } Ranged.DeletValue(Ranged.GetValue(0)); //удаляем текущую точку из выборки } }
private int Volume; //объём выборки #endregion Fields #region Constructors //конструктор public PirsonCriterion(Sampling sampling,int intervals) { Intervals = intervals; ranged = sampling.RangedSampling();//упорядоченная выборка }