このディレクトリの索引

# # 順列をリスト[a1,a2,・・・,an] で表すとき、その転倒数を計算しよう。 # 転倒数(_順列,_転倒数) :- findsum(_度数,度数(転倒(_順列,_,_),_度数),_転倒数). 転倒(_順列,_ある数より前方にありある数より大きい数,_ある数) :- ある順列要素の前にその数より大きい数がある時その二数は転倒しているという(_順列,_ある数より前方にありある数より大きい数,_ある数). ある順列要素の前にその数より大きい数がある時その二数は転倒しているという(_順列,_ある数より前方にありある数より大きい数,_ある数) :- append(L1,[_ある数|_],_順列), member(_ある数より前方にありある数より大きい数,L1), _ある数より前方にありある数より大きい数 > _ある数. 度数(_目標,_度数) :- findall(1,_目標,L), length(L,_度数). findsum(A,_目標,_合計) :- findall(A,_目標,L), sum_list(L,_合計).