Преобразование формулы математики в PHP
У меня есть эта формула, основанная на Mathematica:
2*CDF[BinomialDistribution[100, 1/2], 30] // N
Но я понятия не имею, как преобразовать его в PHP.. Это оригинальный вопрос:
Может кто-нибудь помочь мне преобразовать вышеуказанную формулу в работающую функцию PHP? Это возможно?
Спасибо
2 ответа
Вы должны реализовать это с нуля. К сожалению, я не знаю синтаксис PHP, я пишу код на C, который вы можете легко изменить самостоятельно:
double cdfBinomial(int n ,double p ,int k){
double sum = 0;
for(int i = 0; i <= k; i++){
sum+=combinations(n,i)*pow((double)p,(double)i)*pow((double)(1-p),(double)(n-i));
}
return sum;
}
Вы также должны реализовать combinations
Функция, как здесь сделано.
Вот демонстрация с использованием кода HAL9000 в общей форме Mathematica.
Первая версия CFD:
2*CDF[BinomialDistribution[100, 0.5], 30]
0,0000785014
А теперь родовая форма со вспомогательной combinations
функция:
combinations[n0_, k_] := Module[{n = n0},
If[k > n, 0,
r = 1; For[d = 1, d <= k, ++d,
r *= n--;
r /= d];
r]]
n = 100; p = 0.5; k = 30;
sum = 0; For[i = 0, i <= k, i++,
sum += combinations[n, i]*p^i*(1 - p)^(n - i)];
2*sum
0,0000785014
Эта страница была полезна при написании этого поста: Биномиальное Распределение