//==Функция вычисления частот для накопленных значений==//

        private void calculateAllFrequency()
        {
            uniformAllFrequencyMass.Clear();   // очищаем массивы частот
            gaussAllFrequencyMass.Clear();

            uniformTheoryAllFrequencyMass.Clear();
            gaussTheoryAllFrequencyMass.Clear();

            uniformAllFrequencyMass.Capacity = numberOfSteps;                       // инициализируем массивы частот
            uniformAllFrequencyMass.AddRange(new double[numberOfSteps]);
            gaussAllFrequencyMass.Capacity = numberOfSteps;
            gaussAllFrequencyMass.AddRange(new double[numberOfSteps]);

            uniformTheoryAllFrequencyMass.Capacity = numberOfSteps;
            uniformTheoryAllFrequencyMass.AddRange(new double[numberOfSteps]);
            gaussTheoryAllFrequencyMass.Capacity = numberOfSteps;
            gaussTheoryAllFrequencyMass.AddRange(new double[numberOfSteps]);

            double uniformMaxValue = uniformDistributionMass.Max();                // находим граничные значения
            double gaussMaxValue   = gaussDistributionMass.Max();

            double uniformMinValue = uniformDistributionMass.Min();
            double gaussMinValue   = gaussDistributionMass.Min();

            uniformAllSizeOfSteps = (uniformMaxValue - uniformMinValue) / numberOfSteps;    // вычисляем длину шага
            gaussAllSizeOfSteps   = (gaussMaxValue - gaussMinValue) / numberOfSteps;

            for (int i = 0; i < uniformDistributionMass.Count; i++)                     // распределяем отсчеты по интервалам
            {
                for (int j = 0; j < numberOfSteps; j++)
                {
                    if (uniformDistributionMass[i] <= (uniformMinValue + (uniformAllSizeOfSteps * (j + 1))))
                    {
                        uniformAllFrequencyMass[j] += 1;
                        break;
                    }
                }

                for (int j = 0; j < numberOfSteps; j++)
                {
                    if (gaussDistributionMass[i] <= (gaussMinValue + (gaussAllSizeOfSteps * (j + 1))))
                    {
                        gaussAllFrequencyMass[j] += 1;
                        break;
                    }
                }
            }

            for (int i = 0; i < numberOfSteps; i++)             // вычисляем теоретические значения
            {
                uniformTheoryAllFrequencyMass[i] = 1 / (uniformMaxValue - uniformMinValue);
                gaussTheoryAllFrequencyMass[i]   = DistrGenerator.CalculateGaussFunc(gaussMinValue + (0.5 * gaussAllSizeOfSteps) + (i * gaussAllSizeOfSteps));
            }
        }
        //==Функция генерации нового набора значений==/

        private void newCalculateRandom(int numbRand = 0)
        {
            if (numbRand == 0)                      // автоматическое определение длины выборки
            {
                numbRand = numberOfDigits;
            }

            if (uniformDistributionMass.Capacity >= 10000)  // ограничение объема массива
            {
                button1.Text    = "Конец эксперимента";
                button1.Enabled = false;
                return;
            }

            uniformDistributionMass.Capacity += numbRand;         // расширение массивов всех сгенерированных чисел
            gaussDistributionMass.Capacity   += numbRand;

            DistrGenerator.GetSelectOfUniformDistr(numbRand);     // генерация нового интервала чисел
            //DistrGenerator.GetSelectOfGaussDistrS(numbRand);
            DistrGenerator.GetSelectOfGaussDistrBM(numbRand);

            // Сравнение двух методов генерации значений с гауссовым арспределением величин

            /*
             * System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
             * watch.Start();
             * DistrGenerator.GetSelectOfGaussDistrBM(numberOfDigits);
             * //for (double i = 0; i < 100; i+= 0.01)
             * //    Math.Sin(i);
             * watch.Stop();
             * Console.Out.WriteLine(watch.ElapsedTicks.ToString());
             *
             * watch.Restart();
             * DistrGenerator.GetSelectOfGaussDistrS(numberOfDigits);
             * // for (double i = 0; i < 10000; i++)
             * //    Math.Sqrt(i);
             * watch.Stop();
             * Console.Out.WriteLine(watch.ElapsedTicks.ToString());
             */

            for (int i = 0; i < numbRand; i++)      // заполнение массивов новосгенерированными числами
            {
                uniformDistributionMass.Add(DistrGenerator.uniformMass[i]);
                gaussDistributionMass.Add(DistrGenerator.gaussMass[i]);
            }
        }