1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        PROB:   COMPUTES BINOMIAL, POISSON AND HYPERGEOMETRIC
4  REM                PROBABILITIES
5  REM        36718 REV  A   10/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
9000  REM  PROB--COMPUTES PROBABILITIES FOR DISCRETE VARIABLES
9002  DEF FND()=INT(0^5*+.5)/10^5
9004  PRINT "DISTRIBUTION CODES:"
9006  PRINT 
9008  PRINT "0 = HYPERGEOMETRIC"
9010  PRINT "1 = BINOMIAL"
9012  PRINT "2 = POISSON"
9014  PRINT 
9016  PRINT "WHICH DISTRIBUTION ARE YOU ASSUMING";
9018  INPUT D
9020  IF D>0 THEN 9110
9022  PRINT 
9024  PRINT "M = LOT SIZE"
9026  PRINT "K = NUMBER DEFECTIVES IN THE LOT"
9028  PRINT "N = SAMPLE SIZE"
9030  PRINT "X = NUMBER DEFECTIVES IN THE SAMPLE"
9032  PRINT 
9034  PRINT 
9036  PRINT "TYPE VALUES OF M, K, N, X AND RETURN";
9038  INPUT N,K,N1,X
9040  LET N[1]=N-K
9042  LET N[2]=N-N1
9044  LET N[3]=N
9046  LET N[5]=K
9048  LET N[6]=N1
9050  LET S1=0
9052  FOR L=0 TO X
9054  LET N[4]=N-K-N1+L
9056  LET N[7]=K-L
9058  LET N[8]=N1-L
9060  LET N[9]=L
9062  LET T=9
9064  GOSUB 9192
9066  LET P1=S1
9068  LET P=F[1]+F[2]-F[3]-F[4]+F[5]+F[6]-F[7]-F[8]-F[9]
9070  LET P=EXP(P)
9072  LET S1=S1+P
9074  NEXT L
9076  PRINT 
9078  PRINT "PROBABILITIES ARE:"
9080  PRINT 
9082  PRINT "EXACTLY X      X OR LESS      X OR MORE"
9084  PRINT "---------      ---------      ---------"
9086  PRINT FND(P),FND(S1),FND(1-P1)
9088  PRINT 
9090  PRINT 
9092  PRINT 
9094  PRINT 
9096  PRINT "TYPE 0 IF YOU WISH TO HALT THE PROGRAM"
9098  PRINT "TYPE 1 IF YOU WISH TO CONTINUE COMPUTING PROBABILITIES"
9100  INPUT Z1
9102  IF Z1=0 THEN 9999
9104  IF Z1=1 THEN 9014
9106  PRINT "TYPE EITHER 0 OR 1"
9108  GOTO 9100
9110  IF D>1 THEN 9152
9112  PRINT 
9114  PRINT "N = SAMPLE SIZE"
9116  PRINT "P = PROPORTION OF DEFECTIVES IN THE LOT"
9118  PRINT "X = NUMBER DEFECTIVES IN SAMPLE"
9120  PRINT 
9122  PRINT 
9124  PRINT "TYPE VALUES OF N,P,X AND RETURN";
9126  INPUT N,P2,X
9128  LET S1=0
9130  FOR L=0 TO X
9132  LET N[1]=N
9134  LET N[2]=N-L
9136  LET N[3]=L
9138  LET T=3
9140  GOSUB 9192
9142  LET P1=S1
9144  LET P=EXP(F[1]-F[2]-F[3]+L*LOG(P2)+(N-L)*LOG(1-P2))
9146  LET S1=S1+P
9148  NEXT L
9150  GOTO 9076
9152  IF D>2 THEN 9188
9154  PRINT 
9156  PRINT "M = EXPECTED NUMBER OF DEFECTIVES IN SAMPLE (N*P)"
9158  PRINT "X = NUMBER OF DEFECTIVES OCCURRING IN SAMPLE"
9160  PRINT 
9162  PRINT 
9164  PRINT "TYPE VALUES OF M,X AND RETURN";
9166  INPUT M,X
9168  LET S1=0
9170  FOR L=0 TO X
9172  LET N[1]=L
9174  LET T=1
9176  GOSUB 9192
9178  LET P1=S1
9180  LET P=EXP(L*LOG(M)-M-F[1])
9182  LET S1=S1+P
9184  NEXT L
9186  GOTO 9076
9188  PRINT "PLEASE OBSERVE THE ABOVE CODES"
9190  GOTO 9014
9192  FOR I=1 TO T
9194  IF N[I] >= 10 THEN 9214
9196  IF N[I]>1 THEN 9202
9198  LET F[I]=0
9200  GOTO 9216
9202  LET K9=1
9204  FOR J=2 TO N[I]
9206  LET K9=K9*J
9208  NEXT J
9210  LET F[I]=LOG(K9)
9212  GOTO 9216
9214  LET F[I]=.918939+(N[I]+.5)*LOG(N[I])-N[I]+1/(12*N[I])
9216  NEXT I
9218  RETURN 
9999  END 
