42 lines
		
	
	
		
			863 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			863 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | program prob | ||
|  | 
 | ||
|  |   implicit real*8 (a-h,o-z) | ||
|  |   integer*8 binomial | ||
|  |   integer x,s,XX,NN | ||
|  |   real*8 hypergeo | ||
|  |   character arg*8 | ||
|  | 
 | ||
|  |   nargs=iargc() | ||
|  |   if(nargs.ne.4) then | ||
|  |      print*,'Usage:    prob  x  N  X  s' | ||
|  |      print*,'Example:  prob 35 63 40 40' | ||
|  |      go to 999 | ||
|  |   endif | ||
|  |   call getarg(1,arg) | ||
|  |   read(arg,*) x | ||
|  |   call getarg(2,arg) | ||
|  |   read(arg,*) NN | ||
|  |   call getarg(3,arg) | ||
|  |   read(arg,*) XX | ||
|  |   call getarg(4,arg) | ||
|  |   read(arg,*) s | ||
|  | 
 | ||
|  | !  print*,binomial(5, 3)             ! 10 | ||
|  | !  print*,binomial(40, 19)           ! 131282408400 | ||
|  | 
 | ||
|  |   write(*,1010) x,NN,XX,s | ||
|  | 1010 format(//' x=',i2,'   N=',i2,'   X=',i2,'   s=',i2) | ||
|  |   write(*,1012)  | ||
|  | 1012 format(/' x    P(x|N,X,s)  P(>=x|N,X,s) '/  & | ||
|  |              '-------------------------------') | ||
|  | 
 | ||
|  |   hsum=0.d0 | ||
|  |   do ix=x,XX | ||
|  |      h=hypergeo(ix,NN,XX,s) | ||
|  |      hsum=hsum + h | ||
|  |      write(*,1020) ix,h,hsum | ||
|  | 1020 format(i3,2d13.4) | ||
|  |   enddo | ||
|  | 
 | ||
|  | 999 end program prob |