List<PointValue> point_values;					//Точечные оценки
		
		

		#region CONSTRUCTORS

		/// <summary>
		/// Создает новый объект NormalDistribution на основе объекта 
		/// Distribution, содержащего статистические данные, для которых
		/// проверяется гипотеза
		/// </summary>
		/// <param name="distr"></param>
		public NormalDistribution(Distribution.Distribution distr):base(distr)
		{
            //Если наш исходный ряд был обычным рядом (либо ввод ряда, либо ввод выборки),
            //то берем ряд частот. Иначе берем группированный ряд частот как его аналог для
            //интервального ряда
			if (distr.StatFreq != null)
				raw_statistics = distr.StatFreq;
			else
				raw_statistics = distr.GroupFreq;


			//Расчитываем точеченые оценки

			//Мат ожидание = выборочное средние
			//Дисперсия = выборочная дисперсия
			NumericSolver solver = new NumericSolver(raw_statistics);
			standart_deviation = solver.StandartDeviation();
			expected_value = solver.Mean();

			//Создаем список с точечными оценками
			point_values= new List < PointValue >
            {
				new PointValue("Математическое ожидание", Resources.normal_expected_value, expected_value),
				new PointValue("Среднеквадратическое откланение", Resources.normal_standart_deviation, standart_deviation),
			};
		}
        Dictionary<double, double> raw_statistics;      //Исходный ряд (либо группированный, либо простой)
                                                        //Используется для расчет точечных оценок и построения
                                                        //теоретической функции
        

        #region CONSTRUCTORS
		public BinomialDistribution(Distribution.Distribution distr, int number_of_experiments):base(distr)
		{
            raw_statistics = distr.StatFreq;
			n = number_of_experiments;

			//Вычисляем вероятность благоприятного исхода
            double mean = new NumericSolver(raw_statistics).Mean();
            p =  mean / n;

			point_values = new List<PointValue>
            {
                new PointValue("Вероятность появления события", Resources.binomial_p, p)
            };
		}
		public NumCharacteristics(Dictionary<double, double> distr)
		{
			InitializeComponent();
			solver = new NumericSolver(distr);

			var mean = solver.Mean();
			var dispersion = solver.Dispersion();
			var standard_deviation = solver.StandartDeviation();
			var s_dispersion = solver.SDispersion();

			tbMean.Text = mean.ToString("N2");
			tbDispersion.Text = dispersion.ToString("N2");
			tbStandartDeviation.Text = standard_deviation.ToString("N2");
		}