Гамма-распределение (или ошибка в написании формулы) - 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++)