home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / Samples / C-SSP.ARJ / STBNPB.C < prev    next >
Encoding:
Text File  |  1984-07-24  |  709 b   |  47 lines

  1.       stbnpb(n,p,m,p1)
  2.  
  3.       /*binomial probability distribution subroutine.*/
  4.  
  5.       int n,m;
  6.       float p,*p1;
  7.  
  8.      {
  9.  
  10.       float n1,q1,t,xnp1,xk;
  11.       int k;
  12.       extern double pow();
  13.  
  14.       if (m >= n)
  15.       {
  16.          *p1 = 1.;
  17.          return;
  18.       }
  19.  
  20.       if (m <  0)
  21.       {
  22.          *p1 = 0.;
  23.          return;
  24.       }
  25.  
  26.       if (m == 0)
  27.       {
  28.         n1  = n;
  29.         *p1 = pow(p,n1);
  30.         return;
  31.       }
  32.  
  33.       n1 = n;
  34.       t = pow(p,n1);
  35.       q1 = (1.0 - p)/p;
  36.       *p1 = t;
  37.       xnp1 = n + 1;
  38.       xk = 0.0;
  39.       for (k = 1; k <= m; k++)
  40.       {
  41.       xk += 1.0;
  42.       t = t*q1*(xnp1 - xk)/xk;
  43.       *p1 = *p1 + t;
  44.       }
  45.  
  46.     }
  47.