Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
12
Task/Permutations/Picat/permutations-1.picat
Normal file
12
Task/Permutations/Picat/permutations-1.picat
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
permutation_rec1([X|Y],Z) :-
|
||||
permutation_rec1(Y,W),
|
||||
select(X,Z,W).
|
||||
permutation_rec1([],[]).
|
||||
|
||||
permutation_rec2([], []).
|
||||
permutation_rec2([X], [X]) :-!.
|
||||
permutation_rec2([T|H], X) :-
|
||||
permutation_rec2(H, H1),
|
||||
append(L1, L2, H1),
|
||||
append(L1, [T], X1),
|
||||
append(X1, L2, X).
|
||||
18
Task/Permutations/Picat/permutations-2.picat
Normal file
18
Task/Permutations/Picat/permutations-2.picat
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
import cp.
|
||||
|
||||
% Returns all permutations
|
||||
permutation_cp1(N) = solve_all(X) =>
|
||||
X = new_list(N),
|
||||
X :: 1..N,
|
||||
all_different(X).
|
||||
|
||||
% Find next permutation on backtracking
|
||||
permutation_cp2(N,X) =>
|
||||
X = new_list(N),
|
||||
X :: 1..N,
|
||||
all_different(X),
|
||||
solve(X).
|
||||
|
||||
% Use the cp approach on a list L.
|
||||
permutation_cp_list(L) = Perms =>
|
||||
Perms = [ [L[I] : I in P] : P in permutation_cp1(L.len)].
|
||||
10
Task/Permutations/Picat/permutations-3.picat
Normal file
10
Task/Permutations/Picat/permutations-3.picat
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
import util, cp.
|
||||
main =>
|
||||
N = 3,
|
||||
println(permutations=permutations(1..N)), % built in
|
||||
println(permutation=findall(P,permutation([a,b,c],P))), % built-in
|
||||
println(permutation_rec1=findall(P,permutation_rec1(1..N,P))),
|
||||
println(permutation_rec2=findall(P,permutation_rec2(1..N,P))),
|
||||
println(permutation_cp1=permutation_cp1(N)),
|
||||
println(permutation_cp2=findall(P,permutation_cp2(N,P))),
|
||||
println(permutation_cp_list=permutation_cp_list("abc")).
|
||||
Loading…
Add table
Add a link
Reference in a new issue