From 02a84743ddf5c8c27a36c4d5a20eaf3cd2a9aff4 Mon Sep 17 00:00:00 2001 From: Shinya Sato Date: Sun, 28 Aug 2022 20:40:57 +0900 Subject: Update for n-queens --- comparison/Haskell/nqueen-12.hs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 comparison/Haskell/nqueen-12.hs (limited to 'comparison/Haskell/nqueen-12.hs') diff --git a/comparison/Haskell/nqueen-12.hs b/comparison/Haskell/nqueen-12.hs new file mode 100644 index 0000000..1efb57b --- /dev/null +++ b/comparison/Haskell/nqueen-12.hs @@ -0,0 +1,21 @@ +member x [] = False +member x (y:ys) + | x==y = True + | otherwise = member x ys + +threat k m [] = False +threat k m (x:xs) + | (k == x-m) || (k == m-x) = True + | otherwise = threat (k+1) m xs + + +queen1 0 b n = [] +queen1 m b n + | (member m b) || (threat 1 m b) = (queen1 (m-1) b n) + | (length b) == (n-1) = [m:b] ++ (queen1 (m-1) b n) + | otherwise = (queen1 n (m:b) n) ++ (queen1 (m-1) b n) + +queen n = queen1 n [] n + +n=12 +main = print $ (length (queen n)) -- cgit v1.2.3