Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.68 KB | None | 0 0
  1.  
  2. def isCrossing(tup1, lst):
  3. for val, idx in enumerate(lst):
  4. if ((tup1[0] + tup1[1]) == (idx + val)): # If queens are on the diagonal
  5. return True
  6. if ((tup1[0] - tup1[1]) == (idx - val)): # If queens are on the diagonal
  7. return True
  8. if (tup1[0] == idx): # If queens are on the same row
  9. return True
  10. return False
  11.  
  12. def queens(n):
  13. lst = []
  14. return queens_rec(n, lst)
  15.  
  16. def queens_rec(n, lst):
  17. if len(lst) == n:
  18. return 1
  19. cnt = 0
  20. for row in range(n):
  21. if not isCrossing((row, len(lst)), lst):
  22. # print(lst + [row])
  23. cnt += queens_rec(n, lst + [row])
  24. return cnt
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement