0

0 から N までのリストを作成し、それを並べ替えることができます。しかし、どうすれば から各行を行列と順列にすることができますかmatrix(2,L)

add(X,L,[X|L]).
add(X,[L|H],[L|R]):- add(X,H,R).

permut([],[]).
permut([L|H],R):- permut(H,R1),add(L,R1,R).

permutations(L,R):- findall(P,permut(L,P),R).

do_list(N, L) :- do_list1(N, [], L).

do_list1(0, L, L) :- !.
do_list1(N, R, L) :- N > 0,
               N1 is N-1, 
               do_list1(N1, [N|R], L).

matrix(N,L):-
    do_list(N,R),
    permut(R,L).
4

1 に答える 1