このディレクトリの索引 乱列の全解(N,LL) :- findall(L,乱列(N,L),LL). 乱列(N,X) :- findall(M,for(1,M,N),L), 乱列(L,N,X). 乱列(Y,N,X) :- 乱列(Y,N,1,X). 乱列(Y,0,_,[]). 乱列(Y,N,S1,[A|X]) :- del(Z = Y - A), \+(A = S1), M is N - 1, S2 is S1 + 1, 乱列(Z,M,S2,X). del(X = [A|X] - A). del([B|Y] = [B|X] - A) :- del(Y = X - A).