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

10 lines
280 B
Plaintext

safe[q_List, n_] :=
With[{l = Length@q},
Length@Union@q == Length@Union[q + Range@l] ==
Length@Union[q - Range@l] == l]
nQueen[q_List: {}, n_] :=
If[safe[q, n],
If[Length[q] == n, {q},
Cases[nQueen[Append[q, #], n] & /@ Range[n],
Except[{Null} | {}], {2}]], Null]