bossylobster

Untitled

Jan 25th, 2014
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.72 KB | None | 0 0
  1. import itertools
  2. import time
  3.  
  4.  
  5. def method1(n):
  6.   choices = range(n + 3)
  7.   divider_locations = itertools.combinations(choices, 3)
  8.  
  9.   result = []
  10.   for d1, d2, d3 in divider_locations:
  11.     a = d1
  12.     b = d2 - d1 - 1
  13.     c = d3 - d2 - 1
  14.     d = n + 2 - d3
  15.     result.append((a, b, c, d))
  16.  
  17.   return sorted(result)
  18.  
  19.  
  20. def method2(n):
  21.   result = []
  22.   for a in xrange(n + 1):
  23.     for b in xrange(n + 1 - a):
  24.       for c in xrange(n + 1 - a - b):
  25.         d = n - a - b - c
  26.         result.append((a, b, c, d))
  27.   return sorted(result)
  28.  
  29.  
  30. n = 60
  31. start1 = time.time()
  32. val1 = method1(n)
  33. print 'Time 1', time.time() - start1
  34. start2 = time.time()
  35. val2 = method2(n)
  36. print 'Time 2', time.time() - start2
  37. assert val1 == val2
Advertisement
Add Comment
Please, Sign In to add comment