Advertisement
JoelSjogren

Untitled

Nov 10th, 2013
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.81 KB | None | 0 0
  1. from itertools import product as prod
  2. from collections import Counter
  3. from prettytable import PrettyTable
  4. from operator import mul
  5. # choose k from n with repetition but without order
  6. def f(n, k):
  7. mylist =[]
  8. for I in prod(range(n), repeat=k):
  9. C = Counter(I)
  10. if C not in mylist: mylist.append(C)
  11. return len(mylist)
  12. def c(n, k):
  13. if k < 0 or n < k: return 0
  14. if k * 2 < n: return c(n, n - k)
  15. a = reduce(mul, xrange(k + 1, n + 1), 1)
  16. b = reduce(mul, xrange(1, n - k + 1), 1)
  17. return a / b
  18. def print_values(x, y, fun):
  19. head = [fun.__name__ + "(x, y)"] + range(x)
  20. table = PrettyTable(head)
  21. for i in table.align.iterkeys():
  22. table.align[i] = 'l'
  23. for j in xrange(y):
  24. table.add_row([j] + [fun(i, j) for i in xrange(x)])
  25. print table
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement