Ondrej Sika

matematika

Kombinacni cisla

${0 \choose 0} = 1$
${1 \choose 0} = 1$${1 \choose 1} = 1$
${2 \choose 0} = 1$${2 \choose 1} = 2$${2 \choose 2} = 1$
${3 \choose 0} = 1$${3 \choose 1} = 3$${3 \choose 2} = 3$${3 \choose 3} = 1$
${4 \choose 0} = 1$${4 \choose 1} = 4$${4 \choose 2} = 6$${4 \choose 3} = 4$${4 \choose 4} = 1$
${5 \choose 0} = 1$${5 \choose 1} = 5$${5 \choose 2} = 10$${5 \choose 3} = 10$${5 \choose 4} = 5$${5 \choose 5} = 1$
${6 \choose 0} = 1$${6 \choose 1} = 6$${6 \choose 2} = 15$${6 \choose 3} = 20$${6 \choose 4} = 15$${6 \choose 5} = 6$${6 \choose 6} = 1$
${7 \choose 0} = 1$${7 \choose 1} = 7$${7 \choose 2} = 21$${7 \choose 3} = 35$${7 \choose 4} = 35$${7 \choose 5} = 21$${7 \choose 6} = 7$${7 \choose 7} = 1$
${8 \choose 0} = 1$${8 \choose 1} = 8$${8 \choose 2} = 28$${8 \choose 3} = 56$${8 \choose 4} = 70$${8 \choose 5} = 56$${8 \choose 6} = 28$${8 \choose 7} = 8$${8 \choose 8} = 1$
${9 \choose 0} = 1$${9 \choose 1} = 9$${9 \choose 2} = 36$${9 \choose 3} = 84$${9 \choose 4} = 126$${9 \choose 5} = 126$${9 \choose 6} = 84$${9 \choose 7} = 36$${9 \choose 8} = 9$${9 \choose 9} = 1$
${10 \choose 0} = 1$${10 \choose 1} = 10$${10 \choose 2} = 45$${10 \choose 3} = 120$${10 \choose 4} = 210$${10 \choose 5} = 252$${10 \choose 6} = 210$${10 \choose 7} = 120$${10 \choose 8} = 45$${10 \choose 9} = 10$${10 \choose 10} = 1$

Python generator

import itertools

def comb(n, k):
    return len(list(itertools.combinations(range(n), k)))

res = []
for n in xrange(11):
    res2 = []
    for k in xrange(11):
        if n >= k:
            res2.append((n, k, comb(n, k)))
        else:
            res2.append(None)
    res.append(res2)

print '<table>',
for row in res:
    print '<tr><td>',
    print '</td><td>'.join(map(lambda x: '${%s \\choose %s} = %s$'% x if x else '', row)),
    print '</td></tr>',
print '</table>'