Library · Geometric Probability · Chapter 21

Crofton’s expected chord of a disc

Revised Report an error

Problem 21.1

Pick a line uniformly at random from the space of lines that intersect the unit disc (“uniformly” with respect to the standard kinematic measure dϕ dpd\phi \, dp on line-space). Let ℓ\ell be the length of the chord cut out of the disc by this line. What is E[ℓ]\mathbb{E}[\ell]?

Solution. Parametrise a line by (ϕ,p)(\phi, p) where ϕ∈[0,π)\phi \in [0, \pi) is the angle of the line’s normal and p∈Rp \in \mathbb{R} is the signed distance from the origin. The kinematic measure dϕ dpd\phi \, dp is the unique (up to scaling) measure on lines invariant under rigid motions.

A line (ϕ,p)(\phi, p) intersects the unit disc iff ∣p∣<1|p| < 1. Conditioning on this event, ϕ\phi is uniform on [0,π)[0, \pi) and (by rotational symmetry) pp is uniform on [−1,1][-1, 1].

The chord cut from the unit disc by such a line has length ℓ=21−p2\ell = 2 \sqrt{1 - p^2} (standard right-triangle formula). Hence E[ℓ]=12∫−1121−p2 dp=∫−111−p2 dp=π2.\mathbb{E}[\ell] = \frac{1}{2} \int_{-1}^{1} 2 \sqrt{1 - p^2} \, dp = \int_{-1}^{1} \sqrt{1 - p^2} \, dp = \frac{\pi}{2}. Therefore E[ℓ]=π2≈1.571.■\boxed{\mathbb{E}[\ell] = \frac{\pi}{2} \approx 1.571.} \qedhere

Crofton’s general formula: for a convex body KK in the plane with area AA and perimeter PP, a uniform random line hitting KK has expected chord length E[ℓ]=πAP.\mathbb{E}[\ell] = \frac{\pi A}{P}. For the unit disc, A=πA = \pi and P=2πP = 2\pi, so E[ℓ]=π⋅π/(2π)=π/2\mathbb{E}[\ell] = \pi \cdot \pi / (2 \pi) = \pi/2, matching. For the unit square, A=1A = 1 and P=4P = 4, so E[ℓ]=π/4≈0.785\mathbb{E}[\ell] = \pi/4 \approx 0.785.

Compare with chord-length sampling via uniform endpoints (Chapter 13): that gives E[ℓ]=4/π≈1.273\mathbb{E}[\ell] = 4/\pi \approx 1.273, smaller than π/2\pi/2. With uniform midpoint in the disc (Chapter 20): E[ℓ]=4/3≈1.333\mathbb{E}[\ell] = 4/3 \approx 1.333. Three different “uniform” rules yield three different averages — a reminder of Bertrand’s paradox.

import numpy as np
# Uniform random line: angle phi in [0, pi), signed distance p in [-1, 1].
phi = np.random.rand(10**7) * np.pi
p = np.random.uniform(-1, 1, 10**7)
chord = 2 * np.sqrt(1 - p*p)
print(f"sim: {chord.mean():.5f}   exact: {np.pi/2:.5f}")
# sim: 1.57026   exact: 1.57080
Report an error on this page

Reports are stored by Netlify. See the privacy note.