# Probability of winning a competition K games best of series of N games

Consider a ‘best of 5’ series in sports/competition where the first team to win 3 games wins the series. So N=5, K=3. Where probability `w = p(team A winning game)` and `l = p(team A losing game)`. Assume these probabilities do not change during the series.

``````wrong = function(w) {
p = dbinom(3,3,w) + dbinom(3,4,w) + dbinom(3,5,w)
return(p)
}

wrong(.9)
# 1.0935
``````

Obviously, the issue is there is redundancy since 3 wins in a row, W-W-W renders any game 4 and 5 results obsolete. i.e. W-W-W-L-W and W-W-W-W-L aren’t possible.

After removing redundancies these are the possible permutations:

``````win = function(w) {
l = 1-w
p = w*w*w +
w*w*l*w + w*l*w*w + l*w*w*w +
l*l*w*w*w+ l*w*l*w*w+ l*w*w*l*w+
w*l*l*w*w+ w*l*w*l*w+
w*w*l*l*w

return(p)
}

win(.9)
# 0.99144

win(.9) + win(.1)
# 1
``````

Manually typing the permutations gets out of hand quickly with longer series i.e. winning a N = 7 game series, 9 game series, etc. Generally, how does `wrong()` function need to be modified to get the correct probability?

You can use the negative binomial distribution for this problem.

If X is distributed as NegBin(n, w), then X is the number of games the player loses before winning n of them, if the probability of winning any given game is w.

So, `dnbinom(q = 2, size = 2, prob = w)` is the probability that the player loses a total of 2 games before winning 2.

Then, `pnbinom(q = 2, size = 3, prob = w)` is the probability that the player loses 2 or less before they win 3 games. This is equal to the probability of winning a 3 out of 5 series.

In general, the probability of winning a best n-out-of-(2n-1) series can be calculated with `pnbinom(q = n-1, size = n, prob = w)`.

``````## w is the probability of winning any individual game
## k is the number of wins needed to win the series (3 in a best 3 of 5 series)
win <- function(w, k){
return (pnbinom(q = k - 1, size = k, prob = w))
}

win(0.9, 3)
## 0.99144
``````