Преобразование формулы математики в PHP

У меня есть эта формула, основанная на Mathematica:

2*CDF[BinomialDistribution[100, 1/2], 30] // N

Но я понятия не имею, как преобразовать его в PHP.. Это оригинальный вопрос:

https://math.stackexchange.com/questions/619136/calculate-the-probabilities-of-appearing-even-or-odd-numbers-in-a-predefined-set

Может кто-нибудь помочь мне преобразовать вышеуказанную формулу в работающую функцию 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

Эта страница была полезна при написании этого поста: Биномиальное Распределение

Другие вопросы по тегам