1votos

Problema de las ocho reinas en Clojure

por AverageUser hace 10 meses

Logre dejarlo en 3 lineas :P.

La idea central es colocar ocho reinas en un tablero de ajedrez, sin que se estas se amenacen entre si.

1
2
3
4
5
6
7
(defn reinas [n] 
  (keep #(when (= n (count (set (map-indexed - %))) (count (set (map-indexed + %)))) 
           (mapv inc %)) (combo/permutations (range n)))) 
 
;; (count (reinas 8)) 
;; user=> 
;; 92 
1 comentario
0votos

Escrito por AverageUser hace 9 meses

Una versión algo más corta:
(defn reinas [n]
  (filter (fn [x] (every? #(apply distinct? (map-indexed % x)) [+ -]))
          (combo/permutations (range 1 (inc n)))))

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.