Saturday, 1 February 2014

To solve a puzzle my daughter brought home from school (not really UNIX but Python)

Question is - what was the puzzle?

def allowed(perm):
  m = perm[0] + perm[1]
  if m != (perm[-2] + perm[-1]):
    return False
  for j in range(1, len(perm) - 1, 2):
    if sum(perm[j:j+3]) != m:
      return False
  return True
    
def csolver(n):
  import itertools
  for perm in itertools.permutations(range(1, 2 * n)):
    if allowed(perm):
      print perm

if __name__ == '__main__':
  import sys
  csolver(int(sys.argv[1]))