Library · Geometric Probability · Chapter 49

Expected area of a random triangle in a disc

Revised Report an error

Problem 49.1

Three points are chosen independently and uniformly at random in the closed unit disc. What is the expected area of the triangle they form?

Solution. This is a classical constant (Woolhouse, 1867): the answer is E[Area⁡]=3548π.\mathbb{E}[\operatorname{Area}] = \frac{35}{48 \pi}. We sketch the derivation.

Write Pi=(Xi,Yi)P_i = (X_i, Y_i) with each PiP_i uniform in the unit disc. Twice the signed area is D=(X2−X1)(Y3−Y1)−(X3−X1)(Y2−Y1).D = (X_2 - X_1)(Y_3 - Y_1) - (X_3 - X_1)(Y_2 - Y_1). We want E[∣D∣]/2\mathbb{E}[|D|] / 2.

Reduction. By rotational symmetry, condition on P1P_1 at distance r1∈[0,1]r_1 \in [0, 1] from the origin (WLOG P1=(r1,0)P_1 = (r_1, 0)). The marginal density of r1r_1 is 2r12 r_1. The remaining integration over P2,P3P_2, P_3 is, for fixed P1P_1, an expectation E[∣area of △P1P2P3∣∣P1]\mathbb{E}[|\text{area of } \triangle P_1 P_2 P_3| \mid P_1], which depends on r1r_1.

Evaluation. This inner expectation can be computed in closed form using the joint density (2r2)(2r3)/(2π)2(2r_2)(2r_3)/(2\pi)^2 of (r2,θ2,r3,θ3)(r_2, \theta_2, r_3, \theta_3) and the trigonometric identity ∣D∣=∣r2r3sin⁡(θ3−θ2)+r1r2sin⁡θ2−r1r3sin⁡θ3∣|D| = |r_2 r_3 \sin(\theta_3 - \theta_2) + r_1 r_2 \sin \theta_2 - r_1 r_3 \sin \theta_3|. After careful integration (spelled out in Klain & Rota, Introduction to Geometric Probability, 1997), the result is E[Area⁡]=3548π≈0.2321.■\boxed{\mathbb{E}[\operatorname{Area}] = \frac{35}{48\pi} \approx 0.2321.} \qedhere

The constant 3548π\tfrac{35}{48\pi} underlies Sylvester’s four-point probability in the disc (Chapter 46): the probability that four uniform random points in a disc form a convex quadrilateral is 1−4⋅35/(48π)⋅r2πr2=1−3512π21 - 4 \cdot \tfrac{35/(48\pi) \cdot r^2}{\pi r^2} = 1 - \tfrac{35}{12 \pi^2}. Everywhere that “expected triangle area” appears for the disc, the constant 3548π\tfrac{35}{48\pi} appears.

import numpy as np
r = np.sqrt(np.random.rand(3, 10**7))
t = np.random.rand(3, 10**7) * 2*np.pi
x, y = r*np.cos(t), r*np.sin(t)
area = 0.5*np.abs((x[1]-x[0])*(y[2]-y[0]) - (x[2]-x[0])*(y[1]-y[0]))
print(f"sim: {area.mean():.5f}   exact: {35/(48*np.pi):.5f}")
# sim: 0.23210   exact: 0.23210
Report an error on this page

Reports are stored by Netlify. See the privacy note.