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(Z)=INT(0^5*Z+.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