10 Combination formula#

%%html
<iframe width="700" height="400" src="https://www.youtube.com/embed/p8vIcmr_Pqo/" 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

Combination formula fig 1

def factorial(n):
    if n == 1:
        return 1
    else: 
        return n * factorial(n - 1)
    
def permutation_without_repetation(n, r):
    if n != r:
        return factorial(n) / factorial(n-r)
    else: # zero factorial
        return factorial(n) / factorial(1)
    
def combination_without_repetation(n, r):
    return permutation_without_repetation(n, r) * (1 / factorial(r))
persons = ['A', 'B', 'C', 'D', 'E', 'F']
chairs = [1, 2, 3, 4]
p = list(itertools.permutations(persons, len(chairs)))
c = list(itertools.combinations(persons, len(chairs)))
p
[('A', 'B', 'C', 'D'),
 ('A', 'B', 'C', 'E'),
 ('A', 'B', 'C', 'F'),
 ('A', 'B', 'D', 'C'),
 ('A', 'B', 'D', 'E'),
 ('A', 'B', 'D', 'F'),
 ('A', 'B', 'E', 'C'),
 ('A', 'B', 'E', 'D'),
 ('A', 'B', 'E', 'F'),
 ('A', 'B', 'F', 'C'),
 ('A', 'B', 'F', 'D'),
 ('A', 'B', 'F', 'E'),
 ('A', 'C', 'B', 'D'),
 ('A', 'C', 'B', 'E'),
 ('A', 'C', 'B', 'F'),
 ('A', 'C', 'D', 'B'),
 ('A', 'C', 'D', 'E'),
 ('A', 'C', 'D', 'F'),
 ('A', 'C', 'E', 'B'),
 ('A', 'C', 'E', 'D'),
 ('A', 'C', 'E', 'F'),
 ('A', 'C', 'F', 'B'),
 ('A', 'C', 'F', 'D'),
 ('A', 'C', 'F', 'E'),
 ('A', 'D', 'B', 'C'),
 ('A', 'D', 'B', 'E'),
 ('A', 'D', 'B', 'F'),
 ('A', 'D', 'C', 'B'),
 ('A', 'D', 'C', 'E'),
 ('A', 'D', 'C', 'F'),
 ('A', 'D', 'E', 'B'),
 ('A', 'D', 'E', 'C'),
 ('A', 'D', 'E', 'F'),
 ('A', 'D', 'F', 'B'),
 ('A', 'D', 'F', 'C'),
 ('A', 'D', 'F', 'E'),
 ('A', 'E', 'B', 'C'),
 ('A', 'E', 'B', 'D'),
 ('A', 'E', 'B', 'F'),
 ('A', 'E', 'C', 'B'),
 ('A', 'E', 'C', 'D'),
 ('A', 'E', 'C', 'F'),
 ('A', 'E', 'D', 'B'),
 ('A', 'E', 'D', 'C'),
 ('A', 'E', 'D', 'F'),
 ('A', 'E', 'F', 'B'),
 ('A', 'E', 'F', 'C'),
 ('A', 'E', 'F', 'D'),
 ('A', 'F', 'B', 'C'),
 ('A', 'F', 'B', 'D'),
 ('A', 'F', 'B', 'E'),
 ('A', 'F', 'C', 'B'),
 ('A', 'F', 'C', 'D'),
 ('A', 'F', 'C', 'E'),
 ('A', 'F', 'D', 'B'),
 ('A', 'F', 'D', 'C'),
 ('A', 'F', 'D', 'E'),
 ('A', 'F', 'E', 'B'),
 ('A', 'F', 'E', 'C'),
 ('A', 'F', 'E', 'D'),
 ('B', 'A', 'C', 'D'),
 ('B', 'A', 'C', 'E'),
 ('B', 'A', 'C', 'F'),
 ('B', 'A', 'D', 'C'),
 ('B', 'A', 'D', 'E'),
 ('B', 'A', 'D', 'F'),
 ('B', 'A', 'E', 'C'),
 ('B', 'A', 'E', 'D'),
 ('B', 'A', 'E', 'F'),
 ('B', 'A', 'F', 'C'),
 ('B', 'A', 'F', 'D'),
 ('B', 'A', 'F', 'E'),
 ('B', 'C', 'A', 'D'),
 ('B', 'C', 'A', 'E'),
 ('B', 'C', 'A', 'F'),
 ('B', 'C', 'D', 'A'),
 ('B', 'C', 'D', 'E'),
 ('B', 'C', 'D', 'F'),
 ('B', 'C', 'E', 'A'),
 ('B', 'C', 'E', 'D'),
 ('B', 'C', 'E', 'F'),
 ('B', 'C', 'F', 'A'),
 ('B', 'C', 'F', 'D'),
 ('B', 'C', 'F', 'E'),
 ('B', 'D', 'A', 'C'),
 ('B', 'D', 'A', 'E'),
 ('B', 'D', 'A', 'F'),
 ('B', 'D', 'C', 'A'),
 ('B', 'D', 'C', 'E'),
 ('B', 'D', 'C', 'F'),
 ('B', 'D', 'E', 'A'),
 ('B', 'D', 'E', 'C'),
 ('B', 'D', 'E', 'F'),
 ('B', 'D', 'F', 'A'),
 ('B', 'D', 'F', 'C'),
 ('B', 'D', 'F', 'E'),
 ('B', 'E', 'A', 'C'),
 ('B', 'E', 'A', 'D'),
 ('B', 'E', 'A', 'F'),
 ('B', 'E', 'C', 'A'),
 ('B', 'E', 'C', 'D'),
 ('B', 'E', 'C', 'F'),
 ('B', 'E', 'D', 'A'),
 ('B', 'E', 'D', 'C'),
 ('B', 'E', 'D', 'F'),
 ('B', 'E', 'F', 'A'),
 ('B', 'E', 'F', 'C'),
 ('B', 'E', 'F', 'D'),
 ('B', 'F', 'A', 'C'),
 ('B', 'F', 'A', 'D'),
 ('B', 'F', 'A', 'E'),
 ('B', 'F', 'C', 'A'),
 ('B', 'F', 'C', 'D'),
 ('B', 'F', 'C', 'E'),
 ('B', 'F', 'D', 'A'),
 ('B', 'F', 'D', 'C'),
 ('B', 'F', 'D', 'E'),
 ('B', 'F', 'E', 'A'),
 ('B', 'F', 'E', 'C'),
 ('B', 'F', 'E', 'D'),
 ('C', 'A', 'B', 'D'),
 ('C', 'A', 'B', 'E'),
 ('C', 'A', 'B', 'F'),
 ('C', 'A', 'D', 'B'),
 ('C', 'A', 'D', 'E'),
 ('C', 'A', 'D', 'F'),
 ('C', 'A', 'E', 'B'),
 ('C', 'A', 'E', 'D'),
 ('C', 'A', 'E', 'F'),
 ('C', 'A', 'F', 'B'),
 ('C', 'A', 'F', 'D'),
 ('C', 'A', 'F', 'E'),
 ('C', 'B', 'A', 'D'),
 ('C', 'B', 'A', 'E'),
 ('C', 'B', 'A', 'F'),
 ('C', 'B', 'D', 'A'),
 ('C', 'B', 'D', 'E'),
 ('C', 'B', 'D', 'F'),
 ('C', 'B', 'E', 'A'),
 ('C', 'B', 'E', 'D'),
 ('C', 'B', 'E', 'F'),
 ('C', 'B', 'F', 'A'),
 ('C', 'B', 'F', 'D'),
 ('C', 'B', 'F', 'E'),
 ('C', 'D', 'A', 'B'),
 ('C', 'D', 'A', 'E'),
 ('C', 'D', 'A', 'F'),
 ('C', 'D', 'B', 'A'),
 ('C', 'D', 'B', 'E'),
 ('C', 'D', 'B', 'F'),
 ('C', 'D', 'E', 'A'),
 ('C', 'D', 'E', 'B'),
 ('C', 'D', 'E', 'F'),
 ('C', 'D', 'F', 'A'),
 ('C', 'D', 'F', 'B'),
 ('C', 'D', 'F', 'E'),
 ('C', 'E', 'A', 'B'),
 ('C', 'E', 'A', 'D'),
 ('C', 'E', 'A', 'F'),
 ('C', 'E', 'B', 'A'),
 ('C', 'E', 'B', 'D'),
 ('C', 'E', 'B', 'F'),
 ('C', 'E', 'D', 'A'),
 ('C', 'E', 'D', 'B'),
 ('C', 'E', 'D', 'F'),
 ('C', 'E', 'F', 'A'),
 ('C', 'E', 'F', 'B'),
 ('C', 'E', 'F', 'D'),
 ('C', 'F', 'A', 'B'),
 ('C', 'F', 'A', 'D'),
 ('C', 'F', 'A', 'E'),
 ('C', 'F', 'B', 'A'),
 ('C', 'F', 'B', 'D'),
 ('C', 'F', 'B', 'E'),
 ('C', 'F', 'D', 'A'),
 ('C', 'F', 'D', 'B'),
 ('C', 'F', 'D', 'E'),
 ('C', 'F', 'E', 'A'),
 ('C', 'F', 'E', 'B'),
 ('C', 'F', 'E', 'D'),
 ('D', 'A', 'B', 'C'),
 ('D', 'A', 'B', 'E'),
 ('D', 'A', 'B', 'F'),
 ('D', 'A', 'C', 'B'),
 ('D', 'A', 'C', 'E'),
 ('D', 'A', 'C', 'F'),
 ('D', 'A', 'E', 'B'),
 ('D', 'A', 'E', 'C'),
 ('D', 'A', 'E', 'F'),
 ('D', 'A', 'F', 'B'),
 ('D', 'A', 'F', 'C'),
 ('D', 'A', 'F', 'E'),
 ('D', 'B', 'A', 'C'),
 ('D', 'B', 'A', 'E'),
 ('D', 'B', 'A', 'F'),
 ('D', 'B', 'C', 'A'),
 ('D', 'B', 'C', 'E'),
 ('D', 'B', 'C', 'F'),
 ('D', 'B', 'E', 'A'),
 ('D', 'B', 'E', 'C'),
 ('D', 'B', 'E', 'F'),
 ('D', 'B', 'F', 'A'),
 ('D', 'B', 'F', 'C'),
 ('D', 'B', 'F', 'E'),
 ('D', 'C', 'A', 'B'),
 ('D', 'C', 'A', 'E'),
 ('D', 'C', 'A', 'F'),
 ('D', 'C', 'B', 'A'),
 ('D', 'C', 'B', 'E'),
 ('D', 'C', 'B', 'F'),
 ('D', 'C', 'E', 'A'),
 ('D', 'C', 'E', 'B'),
 ('D', 'C', 'E', 'F'),
 ('D', 'C', 'F', 'A'),
 ('D', 'C', 'F', 'B'),
 ('D', 'C', 'F', 'E'),
 ('D', 'E', 'A', 'B'),
 ('D', 'E', 'A', 'C'),
 ('D', 'E', 'A', 'F'),
 ('D', 'E', 'B', 'A'),
 ('D', 'E', 'B', 'C'),
 ('D', 'E', 'B', 'F'),
 ('D', 'E', 'C', 'A'),
 ('D', 'E', 'C', 'B'),
 ('D', 'E', 'C', 'F'),
 ('D', 'E', 'F', 'A'),
 ('D', 'E', 'F', 'B'),
 ('D', 'E', 'F', 'C'),
 ('D', 'F', 'A', 'B'),
 ('D', 'F', 'A', 'C'),
 ('D', 'F', 'A', 'E'),
 ('D', 'F', 'B', 'A'),
 ('D', 'F', 'B', 'C'),
 ('D', 'F', 'B', 'E'),
 ('D', 'F', 'C', 'A'),
 ('D', 'F', 'C', 'B'),
 ('D', 'F', 'C', 'E'),
 ('D', 'F', 'E', 'A'),
 ('D', 'F', 'E', 'B'),
 ('D', 'F', 'E', 'C'),
 ('E', 'A', 'B', 'C'),
 ('E', 'A', 'B', 'D'),
 ('E', 'A', 'B', 'F'),
 ('E', 'A', 'C', 'B'),
 ('E', 'A', 'C', 'D'),
 ('E', 'A', 'C', 'F'),
 ('E', 'A', 'D', 'B'),
 ('E', 'A', 'D', 'C'),
 ('E', 'A', 'D', 'F'),
 ('E', 'A', 'F', 'B'),
 ('E', 'A', 'F', 'C'),
 ('E', 'A', 'F', 'D'),
 ('E', 'B', 'A', 'C'),
 ('E', 'B', 'A', 'D'),
 ('E', 'B', 'A', 'F'),
 ('E', 'B', 'C', 'A'),
 ('E', 'B', 'C', 'D'),
 ('E', 'B', 'C', 'F'),
 ('E', 'B', 'D', 'A'),
 ('E', 'B', 'D', 'C'),
 ('E', 'B', 'D', 'F'),
 ('E', 'B', 'F', 'A'),
 ('E', 'B', 'F', 'C'),
 ('E', 'B', 'F', 'D'),
 ('E', 'C', 'A', 'B'),
 ('E', 'C', 'A', 'D'),
 ('E', 'C', 'A', 'F'),
 ('E', 'C', 'B', 'A'),
 ('E', 'C', 'B', 'D'),
 ('E', 'C', 'B', 'F'),
 ('E', 'C', 'D', 'A'),
 ('E', 'C', 'D', 'B'),
 ('E', 'C', 'D', 'F'),
 ('E', 'C', 'F', 'A'),
 ('E', 'C', 'F', 'B'),
 ('E', 'C', 'F', 'D'),
 ('E', 'D', 'A', 'B'),
 ('E', 'D', 'A', 'C'),
 ('E', 'D', 'A', 'F'),
 ('E', 'D', 'B', 'A'),
 ('E', 'D', 'B', 'C'),
 ('E', 'D', 'B', 'F'),
 ('E', 'D', 'C', 'A'),
 ('E', 'D', 'C', 'B'),
 ('E', 'D', 'C', 'F'),
 ('E', 'D', 'F', 'A'),
 ('E', 'D', 'F', 'B'),
 ('E', 'D', 'F', 'C'),
 ('E', 'F', 'A', 'B'),
 ('E', 'F', 'A', 'C'),
 ('E', 'F', 'A', 'D'),
 ('E', 'F', 'B', 'A'),
 ('E', 'F', 'B', 'C'),
 ('E', 'F', 'B', 'D'),
 ('E', 'F', 'C', 'A'),
 ('E', 'F', 'C', 'B'),
 ('E', 'F', 'C', 'D'),
 ('E', 'F', 'D', 'A'),
 ('E', 'F', 'D', 'B'),
 ('E', 'F', 'D', 'C'),
 ('F', 'A', 'B', 'C'),
 ('F', 'A', 'B', 'D'),
 ('F', 'A', 'B', 'E'),
 ('F', 'A', 'C', 'B'),
 ('F', 'A', 'C', 'D'),
 ('F', 'A', 'C', 'E'),
 ('F', 'A', 'D', 'B'),
 ('F', 'A', 'D', 'C'),
 ('F', 'A', 'D', 'E'),
 ('F', 'A', 'E', 'B'),
 ('F', 'A', 'E', 'C'),
 ('F', 'A', 'E', 'D'),
 ('F', 'B', 'A', 'C'),
 ('F', 'B', 'A', 'D'),
 ('F', 'B', 'A', 'E'),
 ('F', 'B', 'C', 'A'),
 ('F', 'B', 'C', 'D'),
 ('F', 'B', 'C', 'E'),
 ('F', 'B', 'D', 'A'),
 ('F', 'B', 'D', 'C'),
 ('F', 'B', 'D', 'E'),
 ('F', 'B', 'E', 'A'),
 ('F', 'B', 'E', 'C'),
 ('F', 'B', 'E', 'D'),
 ('F', 'C', 'A', 'B'),
 ('F', 'C', 'A', 'D'),
 ('F', 'C', 'A', 'E'),
 ('F', 'C', 'B', 'A'),
 ('F', 'C', 'B', 'D'),
 ('F', 'C', 'B', 'E'),
 ('F', 'C', 'D', 'A'),
 ('F', 'C', 'D', 'B'),
 ('F', 'C', 'D', 'E'),
 ('F', 'C', 'E', 'A'),
 ('F', 'C', 'E', 'B'),
 ('F', 'C', 'E', 'D'),
 ('F', 'D', 'A', 'B'),
 ('F', 'D', 'A', 'C'),
 ('F', 'D', 'A', 'E'),
 ('F', 'D', 'B', 'A'),
 ('F', 'D', 'B', 'C'),
 ('F', 'D', 'B', 'E'),
 ('F', 'D', 'C', 'A'),
 ('F', 'D', 'C', 'B'),
 ('F', 'D', 'C', 'E'),
 ('F', 'D', 'E', 'A'),
 ('F', 'D', 'E', 'B'),
 ('F', 'D', 'E', 'C'),
 ('F', 'E', 'A', 'B'),
 ('F', 'E', 'A', 'C'),
 ('F', 'E', 'A', 'D'),
 ('F', 'E', 'B', 'A'),
 ('F', 'E', 'B', 'C'),
 ('F', 'E', 'B', 'D'),
 ('F', 'E', 'C', 'A'),
 ('F', 'E', 'C', 'B'),
 ('F', 'E', 'C', 'D'),
 ('F', 'E', 'D', 'A'),
 ('F', 'E', 'D', 'B'),
 ('F', 'E', 'D', 'C')]
c
[('A', 'B', 'C', 'D'),
 ('A', 'B', 'C', 'E'),
 ('A', 'B', 'C', 'F'),
 ('A', 'B', 'D', 'E'),
 ('A', 'B', 'D', 'F'),
 ('A', 'B', 'E', 'F'),
 ('A', 'C', 'D', 'E'),
 ('A', 'C', 'D', 'F'),
 ('A', 'C', 'E', 'F'),
 ('A', 'D', 'E', 'F'),
 ('B', 'C', 'D', 'E'),
 ('B', 'C', 'D', 'F'),
 ('B', 'C', 'E', 'F'),
 ('B', 'D', 'E', 'F'),
 ('C', 'D', 'E', 'F')]
len(p)
360
len(c)
15
permutation_without_repetation(len(persons), len(chairs))
360.0
special.perm(len(persons), len(chairs))
360.0
combination_without_repetation(len(persons), len(chairs))
15.0
special.comb(len(persons), len(chairs))
15.0