yingpotter

[99p]NQueens

Aug 5th, 2011
326
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import Data.List
  2. -- N Queens (n: # of Queens, m: length of boarder; for instance, run eight queens as nQueen 8)
  3. queeN :: Int -> Int -> [[Int]]
  4. queeN 0 _ = [[]]
  5. queeN n m = [ q:qs | qs <- queeN (n-1) m, q <- [1..m] \\ qs,  noDiag q qs ]
  6.           where noDiag q qs = foldr (&&) True [ abs(q - qs!!(i-1)) /= i | i<-[1..(n-1)] ]
  7. nQueen n = queeN n n
Advertisement
Add Comment
Please, Sign In to add comment