Гамма-распределение (или ошибка в написании формулы) - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день, товарищи! Возникла необходимость реализовать формулу для определения гамма-распределения. (Формула во вложении рис1) где: Ri-массив случайных чисел принимающих значения от 0 до 1. Xi- массив получившихся чисел. n и l - задаются в программе. Пробовал так:
        public double[] Metod1(double[] Rez, int N, int par1, int par2)
        {
            double[] mass1 = new double[N];
            for (int i = 0; i < N; i++)
            {
                double tmp = 1;
                for (int j = 0; j < par1; j++)
                {
                    tmp *= Rez[i];
                }
                mass1[i] = -Math.Log(tmp) / par2;
                //mass1[i] = -1 / par2 * Math.Log(tmp);
            }
            return mass1;
        }
где: double[] Rez это Ri-массив случайных чисел принимающих значения от 0 до 1, N- число элементов в массиве Rez, par1 это n, par2 это l. При вычислении mass1 в первом случае получаю данные далеко похожие на истину, во втором случае одни нули, а ведь формулы вроде бы тождественные. Помогите разобраться и найти ошибку.

Решение задачи: «Гамма-распределение (или ошибка в написании формулы)»

textual
Листинг программы
for (int i = 0; i < N-par1; i++)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы