Chapter 247
Can You Carve The Perfect Pumpkin?
Riddler Express
A Sol LeWitt drawing depicts a solid inside a unit cube, with the solid’s faces meeting the cube’s edges at the halfway and quarter-way points. What is the volume of the darkened solid?
The Riddler, FiveThirtyEight, October 25, 2019(original post)
Status
The volume depends on the published drawing, and the drawing turns out to be ambiguous: the solid’s top face is defined by four corners that do not lie in a common plane, so that face must be curved or kinked, and the picture does not say which way. The two natural extremes (the face kinked inward versus outward) give volumes of and , both about , and the column accepted any answer in that range. There is no single well-defined volume to box.
Because the answer requires the image and is not even uniquely determined by it, the Express is deferred from the worked-solution standard, in the same category as the column’s other image-only solids. The accepted range (, between and ) is recorded here.
Riddler Classic
On a spherical pumpkin you carve a triangular eye whose sides are geodesic arcs (shortest paths), equilateral and equiangular. A triangle with three right angles ( corners) covers one-eighth of the surface. You want an eye covering exactly one-sixteenth of the surface. At what angle should each pair of sides meet?
The Riddler, FiveThirtyEight, October 25, 2019(original post)
Solution
On a sphere, a triangle’s area is governed by how much its angles exceed the flat-plane total of . Girard’s theorem says that for a geodesic triangle on a sphere of radius , with interior angles summing to , the “spherical excess.” For an equiangular triangle with each angle , that is . The whole sphere has area , so the fraction of the surface covered is The right-angled eye () gives , matching the one-eighth in the problem. For one-sixteenth, set the fraction to : Since the covered fraction is linear in , and is exactly halfway between (at , a vanishingly small flat triangle) and (at ), the angle is the midpoint, .
The computation
Rather than reuse Girard’s formula, encode the area directly: build a symmetric equiangular spherical triangle, measure its corner angle from the geometry, and measure its area by Monte Carlo (the fraction of uniformly random sphere points falling inside the geodesic triangle). The angle that yields a one-sixteenth area should be (and should yield one-eighth), matching the excess formula.
import numpy as np
from scipy.optimize import brentq
def vertices(phi): # 3 points at colatitude phi, 120 deg apart
return [np.array([np.sin(phi) * np.cos(a), np.sin(phi) * np.sin(a), np.cos(phi)])
for a in (0, 2 * np.pi / 3, 4 * np.pi / 3)]
def vertex_angle(phi):
V = vertices(phi)
def tang(a, b): t = b - np.dot(b, a) * a; return t / np.linalg.norm(t)
return np.degrees(np.arccos(np.clip(
np.dot(tang(V[0], V[1]), tang(V[0], V[2])), -1, 1)))
def area_fraction(phi): # Monte Carlo solid-angle fraction
V = vertices(phi)
n = [np.cross(V[0], V[1]), np.cross(V[1], V[2]), np.cross(V[2], V[0])]
s = [np.sign(np.dot(n[0], V[2])), np.sign(np.dot(n[1], V[0])),
np.sign(np.dot(n[2], V[1]))]
rng = np.random.default_rng(0)
P = rng.standard_normal((2_000_000, 3))
P /= np.linalg.norm(P, axis=1, keepdims=True)
return np.mean((np.sign(P @ n[0]) == s[0]) & (np.sign(P @ n[1]) == s[1])
& (np.sign(P @ n[2]) == s[2]))
for deg in (90.0, 75.0):
phi = brentq(lambda p: vertex_angle(p) - deg, 0.2, 1.5)
print(f"angle {deg:.0f} deg -> area fraction {area_fraction(phi):.4f}")
# angle 90 deg -> area fraction 0.1248 (= 1/8)
# angle 75 deg -> area fraction 0.0625 (= 1/16)
The Monte Carlo area confirms that a eye covers one-eighth and a eye covers one-sixteenth, so the ideal pumpkin eye has corners.