Advertisement
Guest User

Untitled

a guest
Jul 11th, 2012
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.65 KB | None | 0 0
  1. """
  2. 012
  3. 345
  4. 678
  5. """
  6.  
  7. def adj(path,to):
  8.     fr = path[-1] # from; i.e. last node in path
  9.     if to in path:
  10.         return False
  11.     # to is not visited yet
  12.     elif fr==4:
  13.         return True
  14.     elif fr in [1,3,5,7]:
  15.         return fr+to!=8 or 4 in path
  16.     # from in [0,2,6,8]
  17.     elif to in [0,2,6,8]:
  18.         return (fr+to)/2 in path
  19.     # to in [1,3,4,5,6,7]
  20.     return True
  21.  
  22. nodes = range(9)
  23.  
  24. counter = 0
  25.  
  26. def traversal(path = []):
  27.     global counter
  28.     counter += 1
  29.     for x in nodes:
  30.         if adj(path,x):
  31.             traversal(path + [x])
  32.  
  33. for x in nodes:
  34.     traversal([x])
  35. print counter
  36.  
  37. #The result is 389497
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement