このディレクトリの索引

#  @nishio
#  Prologで重複順列([t, f], 3, _重複順列)とかやったら_重複順列が[[t, t, t], [t, t, f], ..., [f, f, f]]になるような述語重複順列の作り方に悩んでいる
#  

'Prologで重複順列([t, f], 3, _重複順列)とかやったら_重複順列が[[t, t, t], [t, t, f], ..., [f, f, f]]になるような述語重複順列の作り方に悩んでいる'(_要素リスト,N,_重複順列) :-
        重複順列(_要素リスト,N,_重複順列).

重複順列(_要素リスト,N,_重複順列) :-
        findall(L,重複順列_1(N,_要素リスト,L),_重複順列).

重複順列_1(0,_,[]).
重複順列_1(N,_要素リスト,[_要素|R]) :-
        N > 0,
        member(_要素,_要素リスト),
        N_1 is N - 1,
        重複順列_1(N_1,_要素リスト,R).