# Binomial Distribution

Alex Egg,

Basketball free throw contest. I can make two bets:

• at least 2 out of 3
• at least 5 out of 8

Which bet would maximize my odds of winning and why?

import numpy as np
from scipy.special import comb
%pylab inline

Populating the interactive namespace from numpy and matplotlib


## Binomial Distribution

Shooting a sequence of free throws can be modeled by a binomial distribution. Below we define the probability mass function for the binomial distribution (also available in scipy.stats.binom.pmf):

PMF=lambda p,n,k: comb(n,k) * p**k*(1-p)**(n-k)

#making at least 5 out of 8
five_out_of_eight = lambda p: PMF(p,8,5)+PMF(p,8,6)+PMF(p,8,7)+PMF(p,8,8)

#making at least 2 out of 3
two_out_of_three = lambda p: PMF(p,3,2)+PMF(p,3,3)

#free throw percentages 0-1 in .1 increments
single_shot_probs=np.arange(0,1.1, .1)
_2_3=[]
_5_8=[]
for p in single_shot_probs:
_2_3.append(two_out_of_three(p))
_5_8.append(five_out_of_eight(p))

figure()
plt.plot(single_shot_probs, _2_3, label="2/3")
plt.plot(single_shot_probs, _5_8, label="5/8")
plt.legend(loc='lower right')

<matplotlib.legend.Legend at 0x10cf54c10>


The answer: It depends how good you are. If your average free throw percentage is <.7 then you should take the 2/3 bet. However, if your free throw percentage is > .7 then you should take the 5/8 bet. But either way, iregardless of your skill level, 2/3 is most safe bet.