RosettaCodeData/Task/N-queens-problem/Mathematica/n-queens-problem-1.math

10 lines
280 B
Text
Raw Permalink Normal View History

2013-04-10 23:57:08 -07:00
safe[q_List, n_] :=
With[{l = Length@q},
Length@Union@q == Length@Union[q + Range@l] ==
Length@Union[q - Range@l] == l]
2015-02-20 00:35:01 -05:00
nQueen[q_List: {}, n_] :=
2013-04-10 23:57:08 -07:00
If[safe[q, n],
2015-02-20 00:35:01 -05:00
If[Length[q] == n, {q},
Cases[nQueen[Append[q, #], n] & /@ Range[n],
Except[{Null} | {}], {2}]], Null]