13 Probability using combinations#

%%html
<iframe width="700" height="400" src="https://www.youtube.com/embed/Xqfcy1rqMbI/" frameborder="0" allowfullscreen></iframe>
import itertools
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
import matplotlib.pyplot as plt
import seaborn as sns
from scipy import stats, special

khanacademy

Probability using combinations fig 1Probability using combinations fig 2

flips = np.arange(1, 9, 1)
total_outcomes = 2 ** 8
c = list(itertools.combinations(flips, 3))
c
[(1, 2, 3),
 (1, 2, 4),
 (1, 2, 5),
 (1, 2, 6),
 (1, 2, 7),
 (1, 2, 8),
 (1, 3, 4),
 (1, 3, 5),
 (1, 3, 6),
 (1, 3, 7),
 (1, 3, 8),
 (1, 4, 5),
 (1, 4, 6),
 (1, 4, 7),
 (1, 4, 8),
 (1, 5, 6),
 (1, 5, 7),
 (1, 5, 8),
 (1, 6, 7),
 (1, 6, 8),
 (1, 7, 8),
 (2, 3, 4),
 (2, 3, 5),
 (2, 3, 6),
 (2, 3, 7),
 (2, 3, 8),
 (2, 4, 5),
 (2, 4, 6),
 (2, 4, 7),
 (2, 4, 8),
 (2, 5, 6),
 (2, 5, 7),
 (2, 5, 8),
 (2, 6, 7),
 (2, 6, 8),
 (2, 7, 8),
 (3, 4, 5),
 (3, 4, 6),
 (3, 4, 7),
 (3, 4, 8),
 (3, 5, 6),
 (3, 5, 7),
 (3, 5, 8),
 (3, 6, 7),
 (3, 6, 8),
 (3, 7, 8),
 (4, 5, 6),
 (4, 5, 7),
 (4, 5, 8),
 (4, 6, 7),
 (4, 6, 8),
 (4, 7, 8),
 (5, 6, 7),
 (5, 6, 8),
 (5, 7, 8),
 (6, 7, 8)]
len(c) / total_outcomes
0.21875
special.comb(len(flips), 3) / total_outcomes
0.21875