Skip to content
Vamshi Jandhyala

Books · The Riddler

Chapter 253

Can You Roll The Perfect Bowl?

The Riddler for January 31, 2020, inspired by a viral bowls shot. The Express finds the shallowest angle at which a rolling bowl can thread between two others; the Classic maximises the volume of a pyramid built from identical thin triangular tiles.

Riddler Express

Each bowl is a sphere of radius 11. Your opponent’s two red bowls are separated by a gap of 33, so their centres are 55 apart. Your green bowl travels in a straight line; let θ\theta be the angle between that line and the line joining the two red centres. What is the minimum θ\theta that lets your bowl pass between the reds without touching either?

The Riddler, FiveThirtyEight, January 31, 2020(original post)

Solution

Follow the centre of the green bowl. To clear a red bowl without touching it, the green centre must stay at least 1+1=21 + 1 = 2 from that red centre. So the green centre traces a straight line that must keep distance at least 22 from each of the two red centres AA and BB, which are 55 apart.

The shallowest such line just grazes both reds, sitting at distance exactly 22 from AA and from BB. By symmetry it passes through the midpoint MM of ABAB, with AM=2.5AM = 2.5. Drop the perpendicular from AA to the line: it has length 22 (the clearance) and meets the line at a right angle, since a sphere’s radius is perpendicular to a tangent at the point of contact. In the right triangle with hypotenuse AM=2.5AM = 2.5 and the side of length 22 opposite the angle the path makes with ABAB, sinθ=22.5=0.8,θ=arcsin0.853.13.\sin\theta = \frac{2}{2.5} = 0.8, \qquad \boxed{\theta = \arcsin 0.8 \approx 53.13^\circ}. Any larger angle threads the gap with room to spare; any smaller angle drives the green centre within 22 of a red centre, a collision.

The computation

Re-encode the geometry rather than the formula: send the green centre along a line through the midpoint at angle θ\theta, measure the smallest distance from that line to each red centre, and find the least θ\theta for which both distances reach the clearance 22.

import numpy as np
A, B = np.array([-2.5, 0.0]), np.array([2.5, 0.0])   # red centres, 5 apart
def clears(theta_deg):
    t = np.radians(theta_deg)
    d = np.array([np.cos(t), np.sin(t)])             # path direction at M=origin
    dist = lambda P: abs(P[0]*d[1] - P[1]*d[0])      # distance from P to the line
    return dist(A) >= 2 and dist(B) >= 2
thetas = np.linspace(0, 90, 900001)
print(min(th for th in thetas if clears(th)))        # ~53.13

The smallest passing angle is about 53.1353.13^\circ, matching arcsin0.8\arcsin 0.8.

Riddler Classic

The Magna-Tiles are identical isosceles triangles with one 3030^\circ angle and two 7575^\circ angles. Twelve of them, with their 3030^\circ corners at the centre, lie flat as a regular dodecagon. Using fewer (between three and eleven) of them in the same way builds a pyramid on a regular-polygon base. To maximise the volume enclosed by the pyramid, how many tiles should you use?

The Riddler, FiveThirtyEight, January 31, 2020(original post)

Solution

Put nn tiles together with their 3030^\circ corners meeting at the apex. Their 3030^\circ angles total 30n30n degrees; at n=12n=12 this fills 360360^\circ and the figure lies flat, and for n<12n<12 it folds up into a pyramid whose base is a regular nn-gon.

Fix the tile. Let its short side (opposite the 3030^\circ apex) be ss and its two equal legs be LL. By the law of sines, s/sin30=L/sin75s/\sin 30^\circ = L/\sin 75^\circ, so L=ssin75/sin30L = s\,\sin 75^\circ/\sin 30^\circ, a constant of the tile. The nn short sides form the base, a regular nn-gon of side ss and circumradius R=s2sin(π/n).R = \frac{s}{2\sin(\pi/n)}. The legs are the slant edges from the apex to the base vertices, all of length LL, so the pyramid’s height is h=L2R2h = \sqrt{L^2 - R^2} and the volume is V(n)=1312nR2sin ⁣2πnbase areaL2R2.V(n) = \frac13 \,\underbrace{\tfrac12\, n R^2 \sin\!\tfrac{2\pi}{n}}_{\text{base area}} \,\sqrt{L^2 - R^2}. As nn grows the base widens (RR up) but the pyramid flattens (hh down to 00 at n=12n=12, where R=LR=L), so the volume peaks at an interior nn. Evaluating V(n)V(n) for n=3,,11n = 3, \ldots, 11, the maximum is at n=10\boxed{n = 10} (about 7373 cubic inches for a 33-inch short side). For very large pancakes of NN tiles the best fraction approaches 2/381.6%\sqrt{2/3} \approx 81.6\% of them, close to 10/1210/12.

The computation

Build each pyramid from the tile geometry and read off the maximiser: compute RR, the height L2R2\sqrt{L^2-R^2} and the volume for every nn from 33 to 1111.

import math
s   = 3.0                                            # short side (inches)
leg = s * math.sin(math.radians(75)) / math.sin(math.radians(30))
def volume(n):
    R = s / (2 * math.sin(math.pi / n))
    h = math.sqrt(leg**2 - R**2)                     # apex height
    area = 0.5 * n * R*R * math.sin(2 * math.pi / n)
    return area * h / 3
best = max(range(3, 12), key=volume)
print(best, round(volume(best), 1))                  # 10 73.1

The volume is largest at n=10n = 10 tiles (about 7373 cubic inches), as boxed.