私はn番目の順列(nPr => per(n,L,Out)
)を実装しようとしていますが、私はfalseを得続けます。P番目の順列のPrologの実装
ここに私がしようとしていることがあります。
per(0,_,[]).
per(_,[],[]).
per(R,[H|T1],[H|T]):-
R1 is R-1,
per(R1,T1,[H|T]),
per(R1,T1,T).
私は間違っていますか?
組み込み順列述語を使用してn番目の順列(nPr)を実装する方法はありますか?
n番目の順列(HTTPS [順列で、この資料に記載されているように]、辞書式順序に従って、計算することができる(または私は順列の番号を誤解か?):// EN。 wikipedia.org/wiki/Permutation#Generation_in_lexicographic_order)。おそらくもっと面倒なProlog運動をするでしょう。 – lurker