Skip to content
Vamshi Jandhyala

Books · The Fiddler: Solutions

Chapter 55

Can You Sweep the Series?

In a best-of-seven series the favoured team wins each game independently with probability pp. For which range a<p<ba<p<b is “winning in exactly five games” the single most likely of the eight possible series results?

The Fiddler, Zach Wissner-Gross, May 9, 2025(original post)

Solution

Writing q=1pq=1-p, the favoured team wins in 4,5,6,74,5,6,7 games with probabilities p4,4p4q,10p4q2,20p4q3,p^4,\quad 4p^4q,\quad 10p^4q^2,\quad 20p^4q^3, and the losing results are smaller in this regime. Win-in-five beats win-in-four when 4q>14q>1 and beats win-in-six when 4>10q4>10q, i.e. q<14 and q>25  35<p<34.q<\tfrac14\ \text{and}\ q>\tfrac25\ \Longrightarrow\ \tfrac35<p<\tfrac34. So the range is 35<p<34\boxed{\tfrac35<p<\tfrac34} (that is, 0.6<p<0.750.6<p<0.75).

The computation

Tabulate all eight series outcomes (win or lose in 44 to 77 games) and, scanning pp, mark where “win in five” is the single largest. The marked band runs from 0.60.6 to 0.750.75.

import numpy as np
def best(p):
    q = 1 - p
    d = {'w4': p**4, 'w5': 4*p**4*q, 'w6': 10*p**4*q**2, 'w7': 20*p**4*q**3,
         'l4': q**4, 'l5': 4*q**4*p, 'l6': 10*q**4*p**2, 'l7': 20*q**4*p**3}
    return max(d, key=d.get)
ps = [p for p in np.linspace(.001, .999, 99999) if best(p) == 'w5']
print(round(min(ps), 3), round(max(ps), 3))     # 0.6  0.75

Extra Credit

Choose pp uniformly from (35,34)(\tfrac35,\tfrac34). Let p4p_4 be the chance of a four-game sweep (either team) and p7p_7 the chance the series reaches seven games. How often is p4>p7p_4>p_7?

Solution

With p4=p4+q4p_4=p^4+q^4 and p7=20p3q3p_7=20p^3q^3, the inequality p4>p7p_4>p_7 flips once inside the interval, at p0.671p\approx0.671, so P(p4>p7)=0.750.6710.750.6052%.P(p_4>p_7)=\frac{0.75-0.671}{0.75-0.60}\approx\boxed{52\%}. (The source’s value is paywalled; this is my own.)

The computation

Sample pp across the interval and test the sweep-vs-seven inequality directly, taking the fraction where the four-game sweep is likelier.

p = np.linspace(0.6, 0.75, 2_000_000); q = 1 - p
print(round(((p**4 + q**4) > 20*p**3*q**3).mean(), 3))   # ~0.524