Текст подпрограммы и версий sf57r_c.zip sf57d_c.zip |
Тексты тестовых примеров tsf57r_c.zip tsf57d_c.zip |
Вычисление функции гипергеометрического распределения вероятностей H (N, L ; N1).
sf57r_c вычисляет вероятность того, что случайная величина, подчиненная закону гипергеометрического распределения вероятностей, меньше или pавна k.
Другими словами, sf57r_c вычисляет вероятность того, что некоторая случайная бесповторная выборка объема L содержит точно или меньше k элементов класса 1, если эта выборка производится из генеральной совокупности N элементов, среди которых N1 элементов принадлежит классу 1:
P (x = k) = CkN1 CL-kN-N1 / CLN , P (x ≤ k) = P (x = k) + P (x = k - 1) + ... + P (x = 0) . Здесь N ≥ L ≥ 1 , N ≥ N1 = q N ≥ 0 , N ≥ k ≥ 0 .
M.Abramowitz, I.A.Stegun, Handbook of Mathematical unctions, New York, Dover Publications, Inc., 1965.
int sf57r_c (integer *k, integer *n, integer *l, integer *n1, real *p, real *q, integer *ierr)
Параметры
k - | заданное значение аргумента k (тип: целый); |
n - | заданное число элементов генеральной совокупности (тип: целый); |
l - | заданный объем случайной бесповторной выборки (тип целый); |
n1 - | заданное число элементов в генеральной совокупности, принадлежащих интересующему классу (тип: целый); |
p - | вещественная переменная, значение которой в pезультате работы подпрограммы полагается равной вероятности того, что случайная величина pавна k; |
q - | вещественная переменная, значение которой в pезультате работы подпрограммы полагается равной вероятности того, что случайная величина меньше или pавна k; |
ierr - | целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом: |
ierr=65 - | когда заданное значение числа элементов генеральной совокупности меньше 1; |
ierr=66 - | когда значение параметра k не принадлежит отрезку (0, l); |
ierr=67 - | когда заданный объем случайной выборки не принадлежит отрезку (1, n); |
ierr=68 - | когда значение параметра n1 не принадлежит отрезку (0, n). |
Версии
sf57d_c - | вычисление функции гипергеометрического распределения вероятностей с повышенной точностью. |
Вызываемые подпрограммы
utsf14_c - | подпрограмма выдачи диагностических сообщений при работе подпрограммы sf57r_c. |
utsf15_c - | подпрограмма выдачи диагностических сообщений при работе подпрограммы sf57d_c. |
Замечания по использованию
В sf57d_c параметры p и q должны иметь тип double. |
int main(void) { /* Local variables */ static int ierr; extern int sf57r_c(int *, int *, int *, int *, float *, float *, int *); static int k, l, n; static float p, q; static int n1; k = 2; n = 32; l = 2; n1 = 4; sf57r_c(&k, &n, &l, &n1, &p, &q, &ierr); printf("\n %16.7e %16.7e %5i \n",p,q,ierr); printf("\n %5i %5i %5i %5i \n",k,n,l,n1); return 0; } /* main */ Результаты: p = 0.012096774193 q = 1. ierr = 0