function pi_grid(r) r_squared = r^2 inside = 0 for i = 1:r for j = 1:r if (i-0.5)^2 + (j - 0.5)^2 < r_squared inside +=1 end end end 4 * inside / r_squared end function pi_rand(n) inside = 0 for i = 1:n if sum(rand(Float64, 2).^2) < 1 inside += 1 end end 4 * inside / n end function pi_rect(n) dx = 1 / 2 r = n * dx r_squared = r^2 x = dx / 2 sum = 0 while x < r y = sqrt(r_squared - x^2) sum += y * dx x += dx end 4 * sum / r_squared end for i in [10, 10^2, 10^3, 10^4, 10^5] println(i^2) println("Random : ", pi_rand(i^2)) println("Fixed : ", pi_grid(i)) println("Rectangles: ", pi_rect(i^2)) println("===") end