Advertisement
Guest User

Untitled

a guest
Jul 30th, 2015
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.63 KB | None | 0 0
  1. # count 4x4 mazes (spanning trees) using Kirchoff's theorem
  2.  
  3. import numpy as np
  4.  
  5. # Vertices:
  6. # 0 1 2 3
  7. # 4 5 6 7
  8. # 8 9 10 11
  9. # 12 13 14 15
  10.  
  11. Q = [[0 for j in range(16)] for i in range(16)]
  12.  
  13. def edge(i, j) :
  14. Q[i][i] += 1
  15. Q[j][j] += 1
  16. Q[i][j] -= 1
  17. Q[j][i] -= 1
  18.  
  19. # add left-to-right edges
  20. for i in range(4) : # rows
  21. for j in range(3) :
  22. edge(i * 4 + j, i * 4 + j + 1)
  23. # add up-down edges
  24. for i in range(4) : # columns
  25. for j in range(3) :
  26. edge(j * 4 + i, (j + 1) * 4 + i)
  27.  
  28. # drop first row and first column
  29. Qstar = [[Q[i][j] for j in range(1,16)] for i in range(1,16)]
  30.  
  31. print np.linalg.det(Qstar), "mazes"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement