Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
16
Task/N-queens-problem/Prolog/n-queens-problem-4.pro
Normal file
16
Task/N-queens-problem/Prolog/n-queens-problem-4.pro
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
:- initialization(main).
|
||||
|
||||
|
||||
queens(N,Qs) :- bagof(X, between(1,N,X), Xs), place(Xs,[],Qs).
|
||||
|
||||
place(Xs,Qs,Res) :-
|
||||
Xs = [] -> Res = Qs
|
||||
; select(Q,Xs,Ys), not_diag(Q,Qs,1), place(Ys,[Q|Qs],Res)
|
||||
.
|
||||
|
||||
not_diag(_, [] , _).
|
||||
not_diag(Q, [Qh|Qs], D) :-
|
||||
abs(Q - Qh) =\= D, D1 is D + 1, not_diag(Q,Qs,D1).
|
||||
|
||||
|
||||
main :- findall(Qs, (queens(8,Qs), write(Qs), nl), _), halt.
|
||||
Loading…
Add table
Add a link
Reference in a new issue