Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
23
Task/N-queens-problem/Picat/n-queens-problem-1.picat
Normal file
23
Task/N-queens-problem/Picat/n-queens-problem-1.picat
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
import sat.
|
||||
% import mip.
|
||||
|
||||
queens_sat(N,Q) =>
|
||||
Q = new_array(N,N),
|
||||
Q :: 0..1,
|
||||
|
||||
foreach (K in 1-N..N-1)
|
||||
sum([Q[I,J] : I in 1..N, J in 1..N, I-J==K]) #=< 1
|
||||
end,
|
||||
|
||||
foreach (K in 2..2*N)
|
||||
sum([Q[I,J] : I in 1..N, J in 1..N, I+J==K]) #=< 1
|
||||
end,
|
||||
|
||||
foreach (I in 1..N)
|
||||
sum([Q[I,J] : J in 1..N]) #= 1
|
||||
end,
|
||||
|
||||
foreach (J in 1..N)
|
||||
sum([Q[I,J] : I in 1..N]) #= 1
|
||||
end,
|
||||
solve([inout],Q).
|
||||
9
Task/N-queens-problem/Picat/n-queens-problem-2.picat
Normal file
9
Task/N-queens-problem/Picat/n-queens-problem-2.picat
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
import cp.
|
||||
|
||||
queens(N, Q) =>
|
||||
Q = new_list(N),
|
||||
Q :: 1..N,
|
||||
all_different(Q),
|
||||
all_different([$Q[I]-I : I in 1..N]),
|
||||
all_different([$Q[I]+I : I in 1..N]),
|
||||
solve([ff],Q).
|
||||
9
Task/N-queens-problem/Picat/n-queens-problem-3.picat
Normal file
9
Task/N-queens-problem/Picat/n-queens-problem-3.picat
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
queens_naive(N, Q) =>
|
||||
Q = new_list(N),
|
||||
Q :: 1..N,
|
||||
foreach(I in 1..N, J in 1..N, I < J)
|
||||
Q[I] #!= Q[J],
|
||||
Q[I] + I #!= Q[J] + J,
|
||||
Q[I] - I #!= Q[J] - J
|
||||
end,
|
||||
solve([ff], Q).
|
||||
Loading…
Add table
Add a link
Reference in a new issue