next up previous
Next: About this document Up: Random Numbers and Monte Previous: Random Numbers and Monte

Monte Carlo area-throwing darts

                   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



E. Bruce Pitman
Mon Nov 23 12:45:56 EST 1998