tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
23
Task/N-queens-problem/Clojure/n-queens-problem.clj
Normal file
23
Task/N-queens-problem/Clojure/n-queens-problem.clj
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
(def size 8)
|
||||
|
||||
(defn extends? [v n]
|
||||
(let [k (count v)]
|
||||
(not-any? true?
|
||||
(for [i (range k) :let [vi (v i)]]
|
||||
(or
|
||||
(= vi n) ;check for shared row
|
||||
(= (- k i) (Math/abs (- n vi)))))))) ;check for shared diagonal
|
||||
|
||||
(defn extend [vs]
|
||||
(for [v vs
|
||||
n (range 1 (inc size)) :when (extends? v n)]
|
||||
(conj v n)))
|
||||
|
||||
|
||||
(def solutions
|
||||
(nth (iterate extend [[]]) size))
|
||||
|
||||
(doseq [s solutions]
|
||||
(println s))
|
||||
|
||||
(println (count solutions) "solutions")
|
||||
Loading…
Add table
Add a link
Reference in a new issue