program rnu
implicit double precision(a-h,o-z)
iseed=(14922523)
itot=0
ihit=0
do j=1,10000
r1=drand(iseed)
r2=drand(iseed)
radius=dsqrt(r1**2+r2**2)
c write(*,*)r1,r2,radius
itot=itot+1
if (radius .lt. 1.d0) then
ihit=ihit+1
endif
aparea=float(ihit)/float(itot)
pi4=datan(1.d0)
write(*,*) "num=",j," approx=",aparea,
1 "exact=",pi4
enddo
stop
end
To see what happens, below is a listing showing the iteration number, the approximate area, and the exact answer.
num= 1 approx= 1.000000000000000 exact= 0.7853981633974483
num= 2 approx= 1.000000000000000 exact= 0.7853981633974483
num= 3 approx= 1.000000000000000 exact= 0.7853981633974483
num= 4 approx= 1.000000000000000 exact= 0.7853981633974483
num= 5 approx= 1.000000000000000 exact= 0.7853981633974483
num= 6 approx= 1.000000000000000 exact= 0.7853981633974483
num= 7 approx= 1.000000000000000 exact= 0.7853981633974483
num= 8 approx= 0.8750000000000000 exact= 0.7853981633974483
num= 9 approx= 0.7777777910232544 exact= 0.7853981633974483
num= 10 approx= 0.6999999880790710 exact= 0.7853981633974483
*****************
num= 100 approx= 0.8299999833106995 exact= 0.7853981633974483
num= 101 approx= 0.8316831588745117 exact= 0.7853981633974483
num= 102 approx= 0.8333333134651184 exact= 0.7853981633974483
num= 103 approx= 0.8349514603614807 exact= 0.7853981633974483
num= 104 approx= 0.8365384340286255 exact= 0.7853981633974483
num= 105 approx= 0.8380952477455139 exact= 0.7853981633974483
num= 106 approx= 0.8396226167678833 exact= 0.7853981633974483
num= 107 approx= 0.8411214947700500 exact= 0.7853981633974483
num= 108 approx= 0.8425925970077515 exact= 0.7853981633974483
num= 109 approx= 0.8440366983413696 exact= 0.7853981633974483
num= 110 approx= 0.8454545736312866 exact= 0.7853981633974483
*****************
num= 500 approx= 0.7620000243186951 exact= 0.7853981633974483
num= 501 approx= 0.7624750733375549 exact= 0.7853981633974483
num= 502 approx= 0.7629482150077820 exact= 0.7853981633974483
num= 503 approx= 0.7634195089340210 exact= 0.7853981633974483
num= 504 approx= 0.7619047760963440 exact= 0.7853981633974483
num= 505 approx= 0.7623762488365173 exact= 0.7853981633974483
num= 506 approx= 0.7628458738327026 exact= 0.7853981633974483
num= 507 approx= 0.7633135914802551 exact= 0.7853981633974483
num= 508 approx= 0.7637795209884644 exact= 0.7853981633974483
num= 509 approx= 0.7642436027526855 exact= 0.7853981633974483
num= 510 approx= 0.7647058963775635 exact= 0.7853981633974483
*****************
num= 9990 approx= 0.7838838696479797 exact= 0.7853981633974483
num= 9991 approx= 0.7839055061340332 exact= 0.7853981633974483
num= 9992 approx= 0.7839271426200867 exact= 0.7853981633974483
num= 9993 approx= 0.7839487791061401 exact= 0.7853981633974483
num= 9994 approx= 0.7839703559875488 exact= 0.7853981633974483
num= 9995 approx= 0.7839919924736023 exact= 0.7853981633974483
num= 9996 approx= 0.7840136289596558 exact= 0.7853981633974483
num= 9997 approx= 0.7840352058410645 exact= 0.7853981633974483
num= 9998 approx= 0.7840567827224731 exact= 0.7853981633974483
num= 9999 approx= 0.7839784026145935 exact= 0.7853981633974483
num= 10000 approx= 0.7839000225067139 exact= 0.7853981633974483