このディレクトリの索引

# 出典 :: ★★ Java の宿題ここで答えます Part 68 ★★ #324 # どなたか教えてください。例えば、 # hoge[]={300,400,500,200,100} をソートしたときに元の配列番号の並びかえで # {4,3,0,1,2}として別の配列に格納したいんですがどうしたらいいでしょうか。 # テンプレ使うまでもない質問だと思ったので、こんな形ですいません。 # よろしくお願いします。 与えられたならびの整列した順序を示す現在の位置番号ならび(_ならび,_索引) :- 位置番号を明示的に付加して整列する(_ならび,L2), 位置番号を切り取り索引を作る(L2,_索引). 位置番号を明示的に付加して整列する(_ならび,L2) :- 位置番号を明示的に付加して(_ならび,L3), 整列する(L3,L2). 位置番号を明示的に付加して(_ならび,L3) :- findall([_値,_位置番号],( 値と位置番号をひとつずつ取り出す(_ならび,_位置番号)),L3). 値と位置番号をひとつずつ取り出す(_ならび,_値,_位置番号) :- append(L1,[_値|_],_ならび), length(L1,_位置番号). 整列する(L3,L2) :- sort(L3,L2). 位置番号を切り取り索引を作る(L2,_索引) :- findall(A,member([_,A],L2),_索引).