Skip to content
Vamshi Jandhyala

Books · The Riddler

Chapter 66

Will Riddler Nation Win Gold In Archery?

Riddler Express

Each Riddler archer’s arrow scores 1010, 99 or 55, each with probability 13\tfrac13; each Conundrum archer scores exactly 88. Three arrows per team per round, higher total wins, ties replay another three-arrow round until broken. Which team is favoured, and with what probability?

Solution

Conundrum scores 3×8=243 \times 8 = 24 every round, dead certain. Riddler’s three arrows give a random total, so in one round Riddler wins, ties, or loses against the fixed 2424. Let pwp_w be Riddler’s overall chance of winning. A round either settles it in Riddler’s favour (probability pwfp_{wf}) or ties (probability pdp_d), and after a tie the situation resets, so pw=pwf+pdpw    pw=pwf1pd.p_w = p_{wf} + p_d\, p_w \;\Longrightarrow\; p_w = \frac{p_{wf}}{1 - p_d}. Among the 33=273^3 = 27 equally likely arrow triples, the totals beat 2424 in 1111 cases, equal 2424 in 66 (the rearrangements of 10+9+510+9+5), and fall short in 1010. So pwf=1127p_{wf} = \tfrac{11}{27}, pd=627p_d = \tfrac{6}{27}, and pw=11/2716/27=11210.524.p_w = \frac{11/27}{1 - 6/27} = \frac{11}{21} \approx \boxed{0.524}. Riddler Nation is favoured: its risky 10/9/510/9/5 archers clear 2424 slightly more often than they miss it.

The computation

Enumerate all 2727 arrow triples, count wins and ties against 2424, and apply the replay formula exactly.

from fractions import Fraction as F
from itertools import product
totals = [sum(t) for t in product([10, 9, 5], repeat=3)]
win = sum(s > 24 for s in totals); draw = sum(s == 24 for s in totals)
pwf, pd = F(win, 27), F(draw, 27)
print(pwf / (1 - pd))                          # 11/21 = 0.5238...

Riddler Classic

A chain has links of lengths 1,f,f2,1, f, f^2, \dots (f<1f < 1), laid in a straight line with the longest link pinned. The chain bends so that every consecutive pair of links makes the same angle θ\theta. As θ\theta ranges over all values, what shape does the tail (the far, infinitesimal end) trace?

Solution

Treat the plane as the complex numbers. The first link points along the real axis; each next link is shorter by a factor ff and turned by a further angle θ\theta, so the kk-th link is fkeikθf^k e^{ik\theta}. The tail of the infinite chain sits at the sum of all links: p(θ)=k=0fkeikθ=11feiθ.p_\infty(\theta) = \sum_{k=0}^{\infty} f^k e^{ik\theta} = \frac{1}{1 - f e^{i\theta}}. As θ\theta runs around the circle, eiθe^{i\theta} traces the unit circle, and w11fww \mapsto \tfrac{1}{1 - f w} is a Möbius transformation, which sends circles to circles. So the tail traces a circle. Its two extreme points come from θ=0\theta = 0 and θ=π\theta = \pi, namely 11f\tfrac{1}{1-f} and 11+f\tfrac{1}{1+f}, which are ends of a diameter; their midpoint and half-distance give a circle centred at (11f2,0) with radius f1f2.\boxed{\text{a circle centred at } \Big(\tfrac{1}{1 - f^2},\,0\Big) \text{ with radius } \tfrac{f}{1 - f^2}.}

The computation

Sweep θ\theta, plot the tail position 1/(1feiθ)1/(1 - f e^{i\theta}), and check every point lies on the predicted circle (residual near zero).

import numpy as np
f = 0.5
th = np.linspace(0, 2 * np.pi, 100_000, endpoint=False)
z = 1 / (1 - f * np.exp(1j * th))
c, r = 1 / (1 - f**2), f / (1 - f**2)
residual = np.abs((z.real - c)**2 + z.imag**2 - r**2).max()
print(c, r, residual)                          # 1.333, 0.667, ~1e-15