0% found this document useful (0 votes)
36 views13 pages

The Mathematics of Volleyball

The document analyzes the mathematics behind volleyball scoring and the probability of each team winning based on the current score. It assumes each team has a 50% chance of winning each point and uses this to derive a recurrence relationship to calculate the probability of the first team winning (P) for any given score. A table is included showing the calculated P values from scores of 0 to 25 for each team.

Uploaded by

heleper339
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views13 pages

The Mathematics of Volleyball

The document analyzes the mathematics behind volleyball scoring and the probability of each team winning based on the current score. It assumes each team has a 50% chance of winning each point and uses this to derive a recurrence relationship to calculate the probability of the first team winning (P) for any given score. A table is included showing the calculated P values from scores of 0 to 25 for each team.

Uploaded by

heleper339
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

Ken Shirriff's blog

Computer history, restoring vintage computers, IC reverse engineering, and whatever

The Mathematics of Volleyball


Recently I was at a multi-day volleyball tournament, which Get new posts by
gave me plenty of time to ponder the mathematics of the email:
game. At different points in the game, I'd wonder what the odds
were of each team winning. And when a team gained or lost a
Enter your email
point, I'd wonder how important that point was. Clearly, if the
score was 24-24, gaining a point made a huge difference. But
how much difference did getting one point at the beginning of Subscribe

the game matter? It seemed like it didn't matter much, but did
it?

I decided to analyze the game mathematically. I made the About the site
simplifying assumption that each team had 50-50 odds of
Contact info and site index
winning each point. I found the analysis interesting, and it turns
out to have close ties to Pascal's Triangle, so I'm posting it
here in case anyone else is interested. Popular Posts

Volleyball games are scored using the rally point system, Reverse-
engineering
which means that one team gets a point on every serve. (Back
Ethernet
in the olden days, volleyball used side-out scoring, which backoff on
meant that only the serving team could get a point. Fortunately, the Intel
rally point scoring is more mathematically tractable. Rally point 82586 network chip's die

scoring also keeps the game advancing faster.) The winner of


Reverse
each match is the best out of three sets (a set is the same as a engineering
game). In the league I was watching, the winner of a game is the Intel 386
the first team to get 25 points and be ahead by at least 2. processor's
register cell
(Except if a third tiebreaker game is needed, it only goes to 15
points instead of 25.)
Apple
iPhone
A few cases are easy to analyze mathematically. If we assume charger
each team has a 50-50 chance of scoring each point and the teardown:
score is tied, each team obviously has a 50% chance of quality in a
tiny expensive package
winning the game. (With side-out scoring, it makes a difference
which team is serving, but for rally point scoring we avoid that
A Multi-
complication.) The second obvious case is if a team has 25 Protocol
points and the other team has 23 or fewer points, the first team Infrared
has 100% chance of winning (since they already won). Remote
Library for
the Arduino
I will use the notation P(m,n) for the chance of the first team
wining if the score is m to n. From above, P(n, n) = 50%, P(25,
A dozen
n) = 100% for n <= 23, and P(m, 25) = 0% for m <= 23. USB
chargers in
The chance of winning in other cases can be calculated from the lab:
the assumption that a team has a 50% chance of winning the Apple is
point, and a 50% chance of losing: the chance of winning is the very good, but not quite
the best
average of these two circumstances. Mathematically, we get
the simple recurrence:
Teardown
and
exploration
of Apple's
Magsafe
For instance, if the score is 25-24, if the first team scores, they connector
win. If the second team scores, then the score is tied. In the
first (winning) case, the first team wins 100%, and in the Examining
the silicon
second (tied) case, the first team wins 50%. Thus, on average dies of the
they will win 75% of the time from a 25-24 lead. That is, P(25, Intel 386
24) = 75%, and by symmetry P(24, 25) = 25%. (Surprisingly, processor
these are the only scores where the requirement to win by 2
Mining
points changes the odds.)
Bitcoin with
pencil and
Likewise, if the score is 24-23, half the time the first team will paper: 0.67
score a point and win, and half the time the second team will hashes per
score a point and tie. So the first team has 1/2 * 100% + 1/2 * day
50% = 75% chance of winning, and P(24, 23) = 75%.

More interesting is if the score is 24-22, half the time the first Search This Blog
team will score a point and win, and half the time the second
Search
team will score, making the score 24-23. We know from above
that the first team has a 75% chance of winning from 24-23, so
Labels
P(24, 22) = 1/2 * 100% + 1/2 * 75% = 87.5%.
386 6502 8008 8085 8086
We can use the recurrence to work backwards and find the
8087 aerospacealto analog
probability of winning from any score. The following table Apollo apple arc arduino
shows the probability of winning for each score. The first team arm beaglebone bitcoin c#
has the score on the left, and the second team has the score cadc calculator chips css
on the top. datapoint dx7

Table with odds of winning when the score is m to n


electronics f# fpga
fractals genome globus haskell
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
html5 ibm ibm1401 ibm360
5 4 3 3 2 2 1 1
11 8 5 4 2 1 1 0 0 0 0 0 0 0 0 0 0 0 intel ipv6 ir java javascript
0 0 4 9 3 8 3 8 4
% % % % % % % % % % % % % % % % % % math microcode oscilloscope
% % % % % % % %
5 5 4 3 3 2 2 1 1 1 photo power supply
7 5 3 2 1 1 0 0 0 0 0 0 0 0 0 0
1 6 0 4 8 3 7 2 7 3 0
% % % % % % % % % %
% % % % % % % % % % % % % % % % random reverse-
6 5 5 4 3 3 2 2 1 1
9 7 4 3 2 1 1 0 0 0 0 0 0 0 0 0
engineering
2 1 6 0 4 8 2 7 1 7 3 sheevaplug snark space
% % % % % % % % % % % % % % % %
% % % % % % % % % %
spanish synth teardown
6 6 5 5 4 3 3 2 2 1 1
3 7 2 6 0 4 8 2 6 1 6 2
9 6 4 3 1 1 0 0 0 0 0 0 0 0 0 theory unicode Z-80
% % % % % % % % % % % % % % %
% % % % % % % % % % %
7 6 6 5 5 4 3 3 2 2 1
11 8 6 4 2 1 1 0 0 0 0 0 0 0 0 Blog Archive
4 2 7 2 6 0 4 7 1 6 0 6
% % % % % % % % % % % % % % %
% % % % % % % % % % %

► 2023 (30)
7 7 6 6 5 5 4 3 3 2 2 1
11 7 5 3 2 1 0 0 0 0 0 0 0 0
5 7 3 8 2 6 0 4 7 1 5 0 5 ►
► 2022 (18)
% % % % % % % % % % % % % %
% % % % % % % % % % % %
8 7 7 6 6 5 5 4 3 3 2 1 1 1 ►
► 2021 (26)
7 4 3 1 1 0 0 0 0 0 0 0
6 2 8 3 8 3 6 0 3 7 0 4 9 4 0
% % % % % % % % % % % % ►
► 2020 (33)
% % % % % % % % % % % % % %
8 8 7 7 6 6 5 5 4 3 3 2 1 1 ►
► 2019 (18)
9 6 4 2 1 1 0 0 0 0 0 0
7 6 3 9 4 9 3 7 0 3 6 0 4 8 3
% % % % % % % % % % % % ►
% % % % % % % % % % % % % % ► 2018 (17)
8 8 8 7 7 6 6 5 5 4 3 2 2 1 1 ►
► 2017 (21)
8 5 3 2 1 0 0 0 0 0 0
8 9 7 3 9 4 9 3 7 0 3 6 9 3 7 2
% % % % % % % % % % %
% % % % % % % % % % % % % % % ►
► 2016 (34)
9 9 8 8 8 7 7 6 5 5 4 3 2 2 1
11 8 5 3 1 1 0 0 0 0 0 ►
► 2015 (12)
9 2 0 7 4 0 5 0 4 7 0 3 6 9 2 6
% % % % % % % % % % %
% % % % % % % % % % % % % % % ►
► 2014 (13)
9 9 9 8 8 8 7 7 6 5 5 4 3 2 2 1
1 11 7 4 2 1 0 0 0 0 0 ►
5 3 1 8 4 0 6 0 4 7 0 3 5 8 1 5 ► 2013 (24)
0 % % % % % % % % % %
% % % % % % % % % % % % % % % %

► 2012 (10)
9 9 9 9 8 8 8 7 7 6 5 5 4 3 2 2 1
1 9 6 3 2 1 0 0 0 0
1
6 5 3 1 9 5 1 6 1 4 7 0 2 5 7 0 4
% % % % % % % % %

▼ 2011 (11)
% % % % % % % % % % % % % % % % %

► December (2)
9 9 9 9 9 8 8 8 7 7 6 5 5 4 3 2 1 1
1 8 5 2 1 0 0 0 0
2
8 7 6 4 2 9 6 2 7 1 5 8 0 2 4 6 9 3
% % % % % % % %

▼ July (2)
% % % % % % % % % % % % % % % % % %
Cells are very fast and
9 9 9 9 9 9 9 8 8 7 7 6 5 5 4 3 2 1 1
1 7 4 2 1 0 0 0 crowded places
9 8 7 6 4 3 0 7 3 8 2 5 8 0 2 3 5 8 2
3 % % % % % % %
% % % % % % % % % % % % % % % % % % % The Mathematics of
9 9 9 9 9 9 9 9 8 8 7 7 6 5 5 4 3 2 1 Volleyball
1 11 6 3 1 0 0 0
9 9 8 7 6 5 3 1 8 4 9 3 6 8 0 1 2 4 7
4 % % % % % % %
% % % % % % % % % % % % % % % % % % % ►
► May (2)
1
9 9 9 9 9 9 9 9 8 8 8 7 6 5 5 4 3 2 1 ►
1 0 9 5 2 1 0 0 ► April (1)
9 9 9 8 7 6 4 2 9 5 0 4 7 9 0 1 1 3 5
5 0 % % % % % %
%
% % % % % % % % % % % % % % % % % % % ►
► March (1)
1 1
9 9 9 9 9 9 9 9 8 8 8 7 6 5 5 4 3 2 1

► February (3)
1 0 0 7 3 1 0 0
9 9 9 8 7 6 5 2 9 6 1 5 8 9 0 0 0 1 3
6 0 0 % % % % %
% % % % % % % % % % % % % % % % % % % ►
► 2010 (22)
% %
1 1 1 1 ►
► 2009 (22)
9 9 9 9 9 9 9 9 8 8 7 6 6 5 4 2 1
1 0 0 0 0 11 5 2 0 0
7 0 0 0 0
9 9 9 8 7 5 3 1 7 2 6 9 0 0 0 9 9
% % % % % ►
► 2008 (27)
% % % % % % % % % % % % % % % % %
% % % %
1 1 1 1 1 1
9 9 9 9 9 9 9 8 8 7 7 6 5 3 2 1
1 0 0 0 0 0 0 9 4 1 0
9 9 8 7 6 4 2 8 3 7 0 0 0 9 7 7
8 0 0 0 0 0 0 % % % %
% % % % % % % % % % % % % % % %
% % % % % %
1 1 1 1 1 1 1
9 9 9 9 9 9 9 8 8 7 7 6 5 3 2 1
1 0 0 0 0 0 0 0 6 2 0
9 9 9 8 7 5 3 9 5 9 1 1 0 8 5 4
9 0 0 0 0 0 0 0 % % %
% % % % % % % % % % % % % % % %
% % % % % % %
1 1 1 1 1 1 1 1 1
9 9 9 9 9 9 9 8 8 7 6 5 3 2
2 0 0 0 0 0 0 0 0 0 11 3 0
9 9 8 8 6 4 1 7 1 3 2 0 6 3
0 0 0 0 0 0 0 0 0 0 % % %
% % % % % % % % % % % % % %
% % % % % % % % %
1 1 1 1 1 1 1 1 1 1 1
9 9 9 9 9 9 8 8 7 6 5 3 1
2 0 0 0 0 0 0 0 0 0 0 0 6 0
9 9 8 7 5 3 9 3 5 4 0 4 9
1 0 0 0 0 0 0 0 0 0 0 0 % %
% % % % % % % % % % % % %
% % % % % % % % % % %
1 1 1 1 1 1 1 1 1 1 1 1 1
9 9 9 9 9 9 8 7 6 5 3 1
2 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9 9 8 7 5 1 6 7 6 0 1 2
2 0 0 0 0 0 0 0 0 0 0 0 0 0 %
% % % % % % % % % % % %
% % % % % % % % % % % % %
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
9 9 9 9 9 8 8 6 5 2
2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9 9 8 6 4 9 1 9 0 5
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %
% % % % % % % % % %
% % % % % % % % % % % % % % %
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
9 9 9 9 8 7 5 2
2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9 8 7 4 8 5 0 5
4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
% % % % % % % %
% % % % % % % % % % % % % % % % % %
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
7 5
2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5 0
5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
% %
% % % % % % % % % % % % % % % % % % % % % % % %

Any particular chance of winning can be easily read from the


table. For instance, if the score is 15-7, look where row 15 and
column 7 meet, and you'll find that the first team has a 94%
chance of winning. (This is P(15, 7) in my notation.)

The table illustrates several interesting characteristics of


scores. The odds fall away from 50% pretty rapidly as you
move away from the diagonal (i.e. away from a tied score).
Points matter a lot more near the end of the game, though:
you've only got a 1% chance of winning from an 18-24
position, while being six points behind at the beginning (0-6)
still gives you an 18% chance of winning. However, a big
deficit is almost insurmountable - if you're behind 0-15, you
have less than a 1% chance of catching up and winning. (Note
that 0% and 100% in the table are not exactly 0% and 100%,
because there's always some chance to win or lose.)

Note that each score is the average of the score below and the
score to the right - these are the cases where the first team
gets the point and the second team gets the point. This
corresponds directly to the equation above.

The table could be extended arbitrarily far if neither team gets


a two point lead, but those cases are not particularly
interesting.

Generating the score table with dynamic


programming
To generate the table, I wrote a simple Arc program to solve
the recurrence equation using dynamic programming:

(def scorePercent (s1 s2 max)


(if (and (>= s1 max) (>= s1 (+ s2 2)))
100.
(and (>= s2 max) (>= s2 (+ s1 2))) 0
(is s1 s2) 50.
(/ (+ (scorePercent s1 (+ s2 1) max)
(scorePercent (+ s1 1) s2
max)) 2)))

The first two arguments are the current score, and the last
argument is the amount to win (25 in this case). For instance:

arc> (scorePercent 24 22 25)


87.5
arc> (scorePercent 20 22 25)
22.65625

Unfortunately, the straightforward way of solving the problem


has a severe performance problem. For instance, computing
(scorePercent 5 7 25) takes hours and hours. The problem is
that evaluating P(5, 7) requires calculating two cases: P(6, 7)
and P(5, 8). Each of those requires two cases, each of which
requires two cases, and so on. The result is an exponential
number of evaluations, which takes a very very long time as
the scores get lower. Most of these evaluations calculate the
same values over and over, which is just wasted work. For
instance, P(6, 8) is computed in order to compute P(6, 7) and
P(6, 8) is computed again in order to compute P(5, 8).

There are a couple ways to improve performance. The hard


way of solving the dynamic programming problem without this
exponential blowup is to carefully determine an order in which
each value can be calculated exactly once by working
backwards, until you end up with the desired value. For
instance, if the values are calculated going up the columns
from right to left, each value can be computed immediately
from two values that have already been computed, until we
end up efficiently computing the whole table in approximately
25*25 steps. This requires careful coding to step through the
table in the right order and to save each result as it is
calculated. It's not too hard, but there's a much easier way.

The easy way of solving the problem is with memoization -


when an intermediate value is calculated, remember its value
in case you need it again, instead of calculating it over and
over. With memoization, we can compute the results in any
order we want, and automatically each result will only be
computed once.

In Arc, memoization can be implemented simply by defining a


function with defmemo, which will automatically memoize the
results of the function evaluation:

(defmemo scorePercent (s1 s2 max)


(if (and (>= s1 max) (>= s1 (+ s2 2)))
100.
(and (>= s2 max) (>= s2 (+ s1 2))) 0
(is s1 s2) 50.
(/ (+ (scorePercent s1 (+ s2 1) max)
(scorePercent (+ s1 1) s2
max)) 2)))

With this simple change, results are nearly instantaneous,


rather than taking hours.

The above function generates a single entry in the table. To


generate the full table in HTML with colored cells, I used a
simple loop and Arc's HTML generating operations. If you're
interested in Arc programming, the full code can be
downloaded here.

Mathematical analysis
Instead of computing the probabilities through dynamic
programming, it is possible to come up with a mathematical
solution. After studying the values for a while, I realized rather
surprisingly that the probabilities are closely tied to Pascal's
Triangle. You may be familiar with Pascal's Triangle, where
each element is the sum of the two elements above it (with 1's
along the edges), forming a table of binomial coefficients:
Pascal's Triangle

The game probabilities come from the triangle of partial sums


of binomial coefficients, which is a lesser-known sequence that
is easily derived from Pascal's Triangle. This sequence, T(n, k)
is formed by summing the first k elements in the corresponding
row of Pascal's Triangle. That is, the first element is the first
element in the same row of Pascal's triangle, the second is the
sum of the first two elements in Pascal's triangle, the third is
the sum of the first three, etc.

T - the partial row sums of Pascal's Triangle

Mathematically, this triangle T(n, k) is defined by:

As with Pascal's Triangle, each element is the sum of the two


above it, but now the right-hand border is powers of 2. This
triangle is discussed in detail in the Online Encyclopedia of
Integer Sequences. Surprisingly, this triangle is closely
connected with distances in a hypercube, error-correcting
codes, and how many pieces an n-dimensional cake can be
cut into.
With function T defined above, the volleyball winning
probabilities are given simply by:

For example, P(23,20) = T(6, 4)/2^6 = 89.0625%, which


matches the table.

Intuitively, it makes sense that the probabilities are related to


Pascal's Triangle, because each entry in Pascal's Triangle is
the sum of the two values above, while each probability entry
is the average of the value above and the value to the right in
the table. Because taking the average divides by 2 in each
step, an exponent of 2 appears in the denominator. The
equation can be proved straightfowardly by induction.

The importance of a point


Suppose the score is m to n. How important is the next point?
I'll consider the importance of the point to be how much more
likely the team is to win the game if they win the point versus
losing the point. For instance, suppose the score is 18-12, so
the first team has a 92% chance of winning (from the previous
table). If they win the next point, their chance goes up to 95%,
while if they lose the point, their chance drops to 88%. Thus,
we'll consider the importance to be 7%. Mathematically, if the
score is m to n, I define the importance as P(m+1, n) - P(m,
n+1).
Table with importance of the next point when the score is
m to n
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
1 1 1 1 1
9 8 7 6 5 4 3 2 1 1 0 0 0 0 0 0 0 0 0 0 0
0 1 1 1 1 0
% % % % % % % % % % % % % % % % % % % % %
% % % % %
1 1 1 1 1 1
9 8 7 6 4 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0
1 1 2 2 1 1 0
% % % % % % % % % % % % % % % % % % % %
% % % % % %
1 1 1 1 1 1 1
9 8 7 6 4 3 2 2 1 1 0 0 0 0 0 0 0 0 0
2 1 2 2 2 2 1 0
% % % % % % % % % % % % % % % % % % %
% % % % % % %
1 1 1 1 1 1 1 1
9 8 7 5 4 3 2 1 1 0 0 0 0 0 0 0 0 0
3 1 1 2 2 2 2 1 0
% % % % % % % % % % % % % % % % % %
% % % % % % % %
1 1 1 1 1 1 1 1 1
9 8 7 5 4 3 2 1 1 0 0 0 0 0 0 0 0
4 0 1 2 2 3 3 2 2 1
% % % % % % % % % % % % % % % % %
% % % % % % % % %
1 1 1 1 1 1 1 1 1 1
9 8 7 5 4 3 2 1 1 0 0 0 0 0 0 0
5 0 1 2 3 3 3 3 2 1 0
% % % % % % % % % % % % % % % %
% % % % % % % % % %
1 1 1 1 1 1 1 1 1 1
8 9 8 6 5 3 2 1 1 0 0 0 0 0 0 0
6 0 1 2 3 3 3 3 2 1 0
% % % % % % % % % % % % % % % %
% % % % % % % % % %
1 1 1 1 1 1 1 1 1 1
7 8 9 8 6 5 3 2 1 1 0 0 0 0 0 0
7 0 2 3 3 4 4 3 2 1 0
% % % % % % % % % % % % % % % %
% % % % % % % % % %
1 1 1 1 1 1 1 1 1 1
6 7 8 9 8 6 4 3 2 1 0 0 0 0 0 0
8 1 2 3 4 4 4 4 3 1 0
% % % % % % % % % % % % % % % %
% % % % % % % % % %
1 1 1 1 1 1 1 1 1 1
5 6 7 8 9 8 6 4 3 1 1 0 0 0 0 0
9 1 2 3 4 4 4 4 3 2 0
% % % % % % % % % % % % % % % %
% % % % % % % % % %
1 1 1 1 1 1 1 1 1 1 1
1 4 4 6 7 8 8 6 4 2 1 1 0 0 0 0
0 1 2 4 4 5 5 4 3 2 0
0 % % % % % % % % % % % % % % %
% % % % % % % % % % %
1 1 1 1 1 1 1 1 1 1 1
1 3 3 4 5 7 8 7 5 3 2 1 0 0 0 0
0 1 3 4 5 5 5 5 4 2 0
1 % % % % % % % % % % % % % % %
% % % % % % % % % % %
1 1 1 1 1 1 1 1 1 1 1
1 2 2 3 4 5 7 8 7 5 3 1 1 0 0 0
0 1 3 4 5 6 6 5 4 2 0
2 % % % % % % % % % % % % % % %
% % % % % % % % % % %
1 1 1 1 1 1 1 1 1 1
1 1 2 2 3 4 5 6 8 9 7 4 2 1 0 0 0
0 2 3 5 6 7 7 6 4 2
3 % % % % % % % % % % % % % % % %
% % % % % % % % % %
1 1 1 1 1 1 1 1 1 1
1 1 1 2 2 3 4 5 6 8 9 6 3 2 1 0 0
0 2 4 5 7 8 8 7 5 2
4 % % % % % % % % % % % % % % % %
% % % % % % % % % %
1 1 1 1 1 1 1 1 1 1
1 0 1 1 1 2 3 3 5 6 8 9 5 3 1 0 0
0 2 4 6 8 9 9 7 5 2
5 % % % % % % % % % % % % % % % %
% % % % % % % % % %
1 1 1 1 1 2 2 1 1 1
1 0 0 1 1 1 2 2 3 4 6 8 8 4 2 0 0
0 2 4 7 9 0 0 8 6 2
6 % % % % % % % % % % % % % % % %
% % % % % % % % % %
1 1 1 1 2 2 2 1 1 1
1 0 0 0 0 1 1 1 2 3 4 6 7 7 3 1 0
0 2 5 7 0 1 1 9 6 2
7 % % % % % % % % % % % % % % % %
% % % % % % % % % %
1 1 1 2 2 2 2 1 1
1 0 0 0 0 0 1 1 1 2 3 4 5 7 9 5 2 0
2 5 8 1 3 3 1 6 1
8 % % % % % % % % % % % % % % % % %
% % % % % % % % %
1 1 1 2 2 2 2 1
1 0 0 0 0 0 0 0 1 1 1 2 3 5 7 9 9 3 0
2 6 9 3 5 5 2 6
9 % % % % % % % % % % % % % % % % % %
% % % % % % % %
1 1 2 2 2 2 2 1
2 0 0 0 0 0 0 0 0 0 1 1 2 3 4 6 9 6 0
2 6 1 5 7 7 3 6
0 % % % % % % % % % % % % % % % % % %
% % % % % % % %
1 1 2 2 3 3 2 1
2 0 0 0 0 0 0 0 0 0 0 1 1 1 2 3 5 8 0
2 6 2 7 1 1 5 2
1 % % % % % % % % % % % % % % % % % %
% % % % % % % %
1 1 2 3 3 3 2
2 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 3 4 7 0
1 6 3 1 8 8 5
2 % % % % % % % % % % % % % % % % % % %
% % % % % % %
1 2 3 5 5 2
2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 3 5 9
6 5 8 0 0 5
3 % % % % % % % % % % % % % % % % % % % %
% % % % % %
1 2 5 5 5
2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 3 6
2 5 0 0 0
4 % % % % % % % % % % % % % % % % % % % % %
% % % % %
2 5 5
2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
5 0 0
5 % % % % % % % % % % % % % % % % % % % % % % %
% % %

The values in the table make intuitive sense. If one team is


winning by a lot, one more point doesn't make much
difference. But if the scores are close, then each point counts.
Each point counts a lot more near the end of the game than at
the beginning. The first point only makes an 11% difference in
the odds of winning, while the if the score is 23-23, the point
makes a 50% difference (75% chance of winning if you get the
point vs 25% if you miss the point). This table is sort of a
derivative of the first table, showing where the values are
changing most rapidly.
The importance of a point as defined above closely matches
the behavior of the spectators. If the score is very close at the
end of the game, the audience becomes much more animated
compared to earlier in the game.

The "importance" is mathematically simpler than the probability


of winning derived earlier. If the current score is 25-a, 25-b,
then the importance is given by the simple equation:

This can proved straighforwardly from the equation for P(x, y).
For example, if the score is 18-12, the importance is C(7+13-2,
6) / 2^(7+13-2) = 18564 / 262144 = 7.08%.

Conclusions
How useful is this model? Well, it depends on the assumption
that each team has an equal chance of winning each point. Of
course, most teams are not evenly matched. Even more
important is the fact that if a team has a good server, they can
quickly rack up 10 points in a row, which throws the model out
the window.

However, I think the model is still useful, since it provides some


quantitative answers to the original questions, and confirms
some intuitions. In addition, the mathematics turned out to be
more interesting than I was expecting, with the surprising
connection to Pascal's Triangle.

Python version
P.S. The code above is in Arc, an obscure language. Here's a
version of the code in Python that will be more useful:

solved = {} # Remember values that have been solved

# Compute probability of team 1 wining when score is s1 to s2.


# Max is the points needed to win (typically 25)
# This routine is just a wrapper around scorePercentInt to
# remember values that have been computed.
def scorePercent(s1, s2, max):
if (s1, s2, max) not in solved:
solved[s1, s2, max] = scorePercentInt(s1, s2, max)
return solved[s1, s2, max]

# This routine does the actual calculation


def scorePercentInt(s1, s2, max):
if s1 >= max and s1 >= s2 + 2: return 100
if s2 >= max and s2 >= s1 + 2: return 0
if s1 == s2: return 50
return (scorePercent(s1, s2+1, max) + scorePercent(s1+1, s2, max)) / 2.

for i in range(0, 26):


for j in range(0, 26):
print '%.3f' % scorePercent(i, j, 25),
print

Labels: arc, math, random

14 comments:
human mathematics said...
Very cool! This definitely makes me more interested in arc
and in functional languages generally. I didn't know you
could solve dynamic programming problems so easily in a
functional language.

Re: your question in the previous post about whether


programming a solution is better or math theory, I would
argue that math is better for understanding what happens
when you change assumptions. For example let's say you
wanted to use heterogeneous probabilities -- the team
that's behind gets discouraged or the team that's ahead
gets cocky or something, at various spreads and times in
the game.

Or maybe there's an ebb-and-flow to the game. Maybe


that's only time-dependent or time-and-score-and-
dummy-variable-dependent, and so on.

Or even just as simple as you want to consider just the


entire array of probabilities you could plug in: best team
vs worst team, slightly mismatched teams, and even
teams. That's when it's nice to have a theorem, or at least
a bit of linear algebra, to know if all those scenarios can
be treated as "of the same type" or not.

I don't remember the formula for the probability that a


biased random walk hits 14 before −14, but I know there
is one.
September 17, 2011 at 10:42 PM

Anonymous said...
all high school coaches need to read this.
April 14, 2013 at 6:28 AM

Unknown said...
so how could you mathematically included factors such as
a mismatched team into the calculations?
this is an extremely interesting topic and i hope that you
delve more into it
June 2, 2013 at 2:32 PM
Tim Roberts said...
Wonderful article--fascinating. One question: On the
importance of next point chart--when the team on the Left
is at 25 and the team on the Top is at 23, the chart shows
25%. Shouldn't it be 0% as the team on the Left would
have already won the match?
September 24, 2015 at 12:19 PM

Ken Shirriff said...


Tim, thank you for your comments. You are correct: it
doesn't make sense to have an entry in the next point
chart for 25-23; those boxes should be blank.
September 25, 2015 at 8:30 AM

Yujin Ahn said...


Beautiful idea-I'm so happy that I could read this article!
Reading this, I thought this could be used in many the
other sports. I'm a high school student in Korea, and I
want to use this to do a study about the mathematics of
sports. Could you let me use this for reference?
May 6, 2016 at 6:12 PM

Ken Shirriff said...


Yujin: yes, go ahead and see if you can apply this to other
sports.
May 6, 2016 at 10:59 PM

Unknown said...
This comment has been removed by the author.
September 9, 2016 at 8:47 AM

Ghyeb said...
Hi Mr.Shirriff, I was looking over your mathematics of
volleyball pascal's triangle and I was confused as to what
your (n) and (i) values meant in your formula following the
triangle? Would you mind explaining the significance of
them? Thanks!
September 18, 2016 at 7:41 PM

Anonymous said...
Hi! I love your ideas! one question: where did you get the
formula's from? I could not find the formula that you used
at the beginning.
October 12, 2016 at 4:52 AM
Unknown said...
Hello. I came across this after I had essentially derived its
equivalent using a cumulative binomial probability
model(Pascal's Triangle link you mention). I decided to
allow for a future point win rate assumption different than
50%, if the reader desired this to be variable. The fact that
serving win rates and receiving win rates are typically
differing by nearly 25% throws off the model in terms of
game flow (average rally lengths are less than a
cumulative binomial model would suggest, closer to 1.6
than 2.0, I believe),but regarding the end state probability
to win the game it remains very useful. Below is a link to a
newsletter I am working on and it has links to
Googlesheets which help inform the ideas within. I am
apparently a little late to the discussion, but still found
your post interesting!

https://drive.google.com/file/d/1RAc34dA6QUUbHh2-
6IOZnK3Xz-rWHOpw/view?usp=sharing

December 21, 2017 at 6:54 AM

beejels said...
The $64,000 question is this...how does knowing this help
us earn a point? The concept is interesting of course. The
big assumption necessary to do any of this work is that
the teams are evenly matched, which they never are, but
that's why it's an assumption. What can we say or do in
the match to make this useful?
September 6, 2018 at 11:41 AM

Unknown said...
Hello Sir, really like your work! I would like to know how
did you come up with both the numerator and the
denominators for these two equations:

T(a+b-1, b-1)/ 2^a+b-1

(a+b-2
a-1 ) / 2^ a+b-2

Also, for the first equation, when we calculate the


numerator, i understood we can use nCr, but i dont
understand why we have to add the numbers in the row in
pascal's triangle, then divide that number by the
denominator and X100 to get the percentage.

I hope you find time to answer my question Sir.


Thank you in advance!!
January 11, 2019 at 1:15 AM
Anonymous said...
nice
April 6, 2021 at 5:39 AM
Post a Comment

Newer Post Home Older Post

You might also like