Гамма-распределение (или ошибка в написании формулы) - C#
Формулировка задачи:
Добрый день, товарищи!
Возникла необходимость реализовать формулу для определения гамма-распределения.
(Формула во вложении рис1)
где: Ri-массив случайных чисел принимающих значения от 0 до 1.
Xi- массив получившихся чисел.
n и l - задаются в программе.
Пробовал так:
где: double[] Rez это Ri-массив случайных чисел принимающих значения от 0 до 1,
N- число элементов в массиве Rez,
par1 это n,
par2 это l.
При вычислении mass1 в первом случае получаю данные далеко похожие на истину, во втором случае одни нули, а ведь формулы вроде бы тождественные.
Помогите разобраться и найти ошибку.
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; }
Решение задачи: «Гамма-распределение (или ошибка в написании формулы)»
textual
Листинг программы
for (int i = 0; i < N-par1; i++)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д