Skip to content
Vamshi Jandhyala

Books · The Fiddler: Solutions

Chapter 51

Can You Squeeze the Bubbles?

You draw seven unit circles one at a time. Each new circle’s centre must not lie inside any previously drawn circle. Let the region be all the space inside at least one circle. What is the smallest possible area of this region?

The Fiddler, Zach Wissner-Gross, June 6, 2025(original post)

Centres a unit apart: one in the middle, six in a unit hexagon. This minimises the union.

Solution

Placing each centre outside every earlier circle forces all pairwise centre distances to be at least 11. To make the union as small as possible you want maximal overlap, so push the centres as close as allowed: all pairwise distances exactly 11 where possible. Seven points achieve this as a triangular-lattice cluster, one centre with six neighbours at distance 11 (a unit hexagon). The resulting area is A=33+2π11.479.A=3\sqrt3+2\pi\approx\boxed{11.479}. The heavy overlap of the seven circles brings the area far below the 7π21.997\pi\approx21.99 of seven disjoint disks.

The computation

Measure the union directly: place the seven centres (centre plus a unit hexagon), scatter points over a box that contains the figure, and take the fraction landing inside at least one circle, scaled by the box area.

import numpy as np
ctr = [(0, 0)] + [(np.cos(k*np.pi/3), np.sin(k*np.pi/3)) for k in range(6)]
rng = np.random.default_rng(0); P = rng.uniform(-3, 3, (20_000_000, 2))
inside = np.zeros(len(P), bool)
for cx, cy in ctr: inside |= ((P[:, 0] - cx)**2 + (P[:, 1] - cy)**2 <= 1)
print(round(inside.mean()*36, 3), round(3*np.sqrt(3) + 2*np.pi, 3))   # ~11.48  11.479

Extra Credit

For NN circles under the same rule, what is the minimum area as NN grows very large?

Solution

The densest legal arrangement of centres is the triangular lattice with spacing 11. Each interior circle then owns a Voronoi hexagon of area 3212\tfrac{\sqrt3}{2}\cdot 1^2, and because the radius 11 far exceeds the half-spacing 12\tfrac12, the union fully covers that lattice region. So the minimum area grows linearly, AN32N0.866N,A_N \sim \frac{\sqrt3}{2}\,N\approx\boxed{0.866\,N}, with lower-order boundary corrections of size O(N)O(\sqrt N). (The source’s answer is paywalled; this asymptotic is my own.)

The computation

Tile a large disk with unit-spacing triangular-lattice centres, measure the union area by Monte Carlo, and divide by the number of circles; the area per circle settles on 32\tfrac{\sqrt3}{2}.

pts = [(i + 0.5*(j & 1), j*np.sqrt(3)/2) for i in range(-20, 21) for j in range(-20, 21)]
pts = np.array([p for p in pts if p[0]**2 + p[1]**2 < 12**2])     # a large disk of centres
rng = np.random.default_rng(0); Q = rng.uniform(-15, 15, (8_000_000, 2))
inside = np.zeros(len(Q), bool)
for cx, cy in pts: inside |= ((Q[:, 0] - cx)**2 + (Q[:, 1] - cy)**2 <= 1)
print(round(inside.mean()*900/len(pts), 4), round(np.sqrt(3)/2, 4))   # ~0.866 per circle