Question: The vertices of triangles are uniformly distributed on the circumference of a circle. What is the probability that the centroid is inside the incricle.
Simulations with $10^{10}$ trails give a value of $0.457982$. It is interesting to note that this agrees with $\displaystyle \frac{G}{2}$ to six decimal places where $G$ is the Catalan's constant.
Julia source code:
using Random
inside = 0
step = 10^7
target = step
count = 0
function rand_triangle()
angles = sort(2π * rand(3))
cos_angles = cos.(angles)
sin_angles = sin.(angles)
x_vertices = cos_angles
y_vertices = sin_angles
return x_vertices, y_vertices
end
function incenter(xv, yv)
a = sqrt((xv[2] - xv[3])^2 + (yv[2] - yv[3])^2)
b = sqrt((xv[1] - xv[3])^2 + (yv[1] - yv[3])^2)
c = sqrt((xv[1] - xv[2])^2 + (yv[1] - yv[2])^2)
s = (a + b + c) / 2
incenter_x = (a * xv[1] + b * xv[2] + c * xv[3]) / (a + b + c)
incenter_y = (a * yv[1] + b * yv[2] + c * yv[3]) / (a + b + c)
incircle_radius = sqrt(s * (s - a) * (s - b) * (s - c)) / s
return incenter_x, incenter_y, incircle_radius
end
while true
count += 1
x_vertices, y_vertices = rand_triangle()
centroid_x = sum(x_vertices) / 3
centroid_y = sum(y_vertices) / 3
incenter_x, incenter_y, incircle_radius = incenter(x_vertices, y_vertices)
centroid_inside = sqrt((centroid_x - incenter_x)^2 + (centroid_y - incenter_y)^2) <= incircle_radius
inside += centroid_inside
if count == target
println(count, " ", inside, " ", inside / count)
target += step
end
end





