Chapter 267
Can You Pinpoint The Planet?
Riddler Express
Planet Xiddler orbits its sun at million km. Just after sunset, three astronomers all spot a newly discovered planet at the zenith (straight overhead). One says its orbital radius is million km, one says million km, one says million km. Whom should the Grand Minister believe?
The Riddler, FiveThirtyEight, June 5, 2020(original post)
Solution
Two directions fix everything. Just after sunset the sun sits on the horizon, while the new planet is at the zenith, straight up. The angle between “towards the horizon” and “straight up” is , so from Xiddler the angle Sun–Xiddler–planet is a right angle. The planet is at quadrature.
Now ask which orbits can ever appear from the sun. For a planet closer to the sun than Xiddler (an inner planet, radius ), the sun–planet line of sight can never swing more than from the sun: the million km orbit tops out at , nowhere near . A planet at the same radius () would share Xiddler’s orbit, which is impossible. Only an outer planet, farther from the sun than Xiddler, can reach elongation. So the Grand Minister should believe the astronomer who said
The computation
Encode the elongation limit: for each proposed orbit, the greatest possible angle between sun and planet as seen from Xiddler. An inner orbit () caps at ; only an outer orbit can reach the observed .
import math
R = 150
for r in (50, 300, 150):
if r < R:
print(r, "inner: max elongation", round(math.degrees(math.asin(r / R)), 1))
elif r > R:
print(r, "outer: reaches 90 deg (quadrature) -> matches zenith at sunset")
else:
print(r, "same orbit as Xiddler -> impossible")
# 50 inner: max elongation 19.5
# 300 outer: reaches 90 deg (quadrature) -> matches zenith at sunset
# 150 same orbit as Xiddler -> impossible
Riddler Classic
You fill in a sign’s letters with a marker whose flat circular tip has radius cm. Drawing horizontal strokes every cm (the tip’s diameter) leaves visible gaps. If strokes may overlap by at most cm, what overlap makes the shading as uniform as possible, and how uniform is it (as measured by the standard deviation of the ink)?
The Riddler, FiveThirtyEight, June 5, 2020(original post)
Solution
Look at a vertical slice across the strokes. As the round tip slides along at constant speed, the ink left at a point is proportional to how long the tip covers it. A point a distance from a stroke’s midline is covered while the tip’s centre is within horizontally, so a single stroke deposits a semicircular hill of ink, for . That is why evenly spaced non-overlapping strokes leave gaps: the hills sag to zero at their edges.
With strokes spaced apart (an overlap of ), the total ink is the sum of these hills, , a periodic profile. As shrinks from , the dips between hills fill in; push too far and the midlines bulge instead. Somewhere between, the ripple is smallest. Minimising the standard deviation of over one period gives the best overlap, at which the standard deviation of the ink (with each hill scaled to height ) is about . The official’s more finely tuned value is an overlap of cm.
The computation
Encode the ink profile for spacing , sampled over one period, and search the overlap that minimises its standard deviation.
import numpy as np
from scipy.optimize import minimize_scalar
def ink_std(overlap):
d = 2 - overlap # stroke spacing
y = np.linspace(0, d, 20000, endpoint=False)
I = np.zeros_like(y)
for k in range(-4, 5):
t = y - k * d
m = np.abs(t) < 1
I[m] += np.sqrt(1 - t[m] ** 2) # semicircular hill, height 1
return I.std()
r = minimize_scalar(ink_std, bounds=(0.0, 1.0), method="bounded")
print(f"overlap = {r.x:.3f} cm, min std dev = {r.fun:.4f}")
# overlap = 0.308 cm, min std dev = 0.0859
The search lands on an overlap near cm with a standard deviation of about .