Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from itertools import product as prod
- from collections import Counter
- from prettytable import PrettyTable
- from operator import mul
- # choose k from n with repetition but without order
- def f(n, k):
- mylist =[]
- for I in prod(range(n), repeat=k):
- C = Counter(I)
- if C not in mylist: mylist.append(C)
- return len(mylist)
- def c(n, k):
- if k < 0 or n < k: return 0
- if k * 2 < n: return c(n, n - k)
- a = reduce(mul, xrange(k + 1, n + 1), 1)
- b = reduce(mul, xrange(1, n - k + 1), 1)
- return a / b
- def print_values(x, y, fun):
- head = [fun.__name__ + "(x, y)"] + range(x)
- table = PrettyTable(head)
- for i in table.align.iterkeys():
- table.align[i] = 'l'
- for j in xrange(y):
- table.add_row([j] + [fun(i, j) for i in xrange(x)])
- print table
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement