这是使用蒙特卡罗方法估计 pi (3.14...) 值的典型代码。所以我在 do-while 循环的迭代次数上遇到了麻烦。直到迭代次数小于或等于 10000000 时,pi 的近似值是正确的,但是当迭代次数大于此值时,pi 的值是错误的。这些是两个不同迭代次数的输出。
输出 1.(对于 10000000 次迭代)
pi 的近似值为 3.14104080
圆中
的点数7852602.00正方形中的点数 10000000.0
输出 2.(对于 100000000 次迭代)
pi 的近似值为 4.00000000
圆中
的点数 16777216.0 正方形中的点数 16777216.0
Fortran代码:
program estimate_pi
implicit none
real :: length, r, rand_x, rand_y, radius, area_square, square_points, circle_points, origin_dist, approx_pi
integer :: i, iterations
! length of side of a square
length = 1
! radius of the circle
radius = length/2
! area of the square considered
area_square = length …Run Code Online (Sandbox Code Playgroud)