Текст подпрограммы и версий
sf41r_c.zip  sf41d_c.zip 
Тексты тестовых примеров
tsf41r_c.zip  tsf41d_c.zip 

Подпрограмма:  sf41r_c

Назначение

Вычисление биномиальной функции распределения вероятностей Bi (n, p).

Математическое описание

Пусть мы имеем  n  испытаний Бернулли с вероятностью  P  успеха каждого такого испытания. Тогда sf41r_c вычисляет вероятность  РК  того, что будет получено pовно  K  успешных испытаний, и вероятность  PS  того, что число успешных испытаний будет меньше или pавно  K.

W.H.Beyer, Handbook of Tables for Probability and Statistics, The Chemical Rubber Co., Cleveland, Ohio, 1966.

Использование

    int sf41r_c (integer *n, integer *k, real *p, real *pk,
            real *ps, integer *ierr)

Параметры

n - заданное число испытаний Бернулли  n (тип: целый);
k - заданное число успешных испытаний (тип: целый);
p - заданная вероятность успеха каждого испытания Бернулли (тип: вещественный);
pk - вещественная переменная, значение которой в pезультате работы функции полагается равным веpоятности того, что будет получено pовно  k успешных испытаний;
ps - вещественная переменная, значение которой в pезультате работы функции полагается равным веpоятности того, что число успешных испытаний будет меньше или pавно  k;
ierr - целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы функции; при этом:
ierr=65 - когда число успешных испытаний Бернулли задано меньшим 0 или большим общего числа испытаний; значения выходных вероятностей положены равными 3.4e38;
ierr=66 - когда заданная вероятность успешного испытания Бернулли не принадлежит отрезку [0, 1]; значения выходных вероятностей положены равными 3.4e38.

Версии

sf41d_c - вычисление биномиальной функции распределения вероятностей Bi (n, p) с повышенной точностью.

Вызываемые подпрограммы

utsf12_c - подпрограмма выдачи диагностических сообщений при работе подпрограммы sf41r_c.
utsf13_c - подпрограмма выдачи диагностических сообщений при работе подпрограммы sf41d_c.

Замечания по использованию

  Для функции sf41d_c параметры p, pk и ps должны иметь тип double и при  ierr ≠ 0 значения выходных вероятностей полагаются равными 1.7e308.

Пример использования

int main(void)
{
    /* Local variables */
    extern int sf41r_c(int *, int *, float *, float *, float *, int *);
    static int ierr, k, n;
    static float p, pk, ps;

    n = 5;
    k = 0;
    p = .05f;
    sf41r_c(&n, &k, &p, &pk, &ps, &ierr);

    printf("\n %16.7e %16.7e \n",pk,ps);
    printf("\n %5i %5i %16.7e %5i \n",n,k,p,ierr);
    return 0;
} /* main */


Результаты:

       pk  =  0.773780937
       ps  =  0.773780937
       ierr  =  0