Advertisement
Guest User

Untitled

a guest
Feb 24th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.49 KB | None | 0 0
  1. def memoize(f):
  2. memory = {}
  3.  
  4. def wrapper(n, k):
  5. if (n, k) not in memory:
  6. memory[(n, k)] = f(n, k)
  7. return memory[(n, k)]
  8. return wrapper
  9.  
  10.  
  11. @memoize
  12. def combination(n, k):
  13. if k < 0 or n < 0:
  14. raise ValueError
  15. if k == 0 or n == k:
  16. return 1
  17. return combination(n - 1, k - 1) + combination(n - 1, k)
  18.  
  19.  
  20. for n in range(0, 100):
  21. print ' '.join(['{}C{} = {}'.format(n, k, combination(n, k))
  22. for k in range(0, n + 1)])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement